10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

UiPath (produced with UiPath Friends)Advent Calendar 2022

Day 22

【UiPath】設定とコピペで体験!外部アプリケーション機能(OAuth)を使った外部トリガーの簡単なチュートリアル

Last updated at Posted at 2022-12-21

はじめに

この投稿はUiPath Advent Calendar (produced with UiPath Friends) Advent Calendar 2022 の22日目の投稿です。

Orchestrator APIコールを使って外部からUiPathのリソースをアクセスする方法として、現在、外部アプリケーション機能(OAuth)が推奨されています。本ブログは、クイックに体験できるチュートリアル的な感じで書こうと思います。

何を体験するのか。

このチュートリアルは外部アプリケーション機能を使って、外部アプリからOrchestratorに格納されているプロセスをトリガーすると言ったことをします。コーディングや、UiPath以外のソフトのインストールはせずに、設定とコピペだけで、クイックに動かして見ると言ったことだけにフォーカスしています。ですので進行中の補足、枝葉や余談などの説明は差し込んでません。動かした体験で、今後応用して使いこなしたり、深掘するステップになればと思います。

前提

  1. 本ブログは2022/12月時点のAutomation Cloudの画面操作で説明しています。おそらく、また変わっていくでしょうね(笑)
  2. Unattendedロボットが動作できる状態の設定になっていることが前提です。

手順

1.トリガーするプロセスを用意する

トリガーを体験するだけなので、既にあるプロセスでも、新しく適当に作って頂いてもよろしいかと思います。
image.png

2.まずはSwaggerで試して見る

Orchestrator APIを使う時は、まずSwaggerで動作させて見てから、その情報を活用すると言ったアプローチも有効です。
Swaggerへのアクセスは下記からコピペして{organization_ID}と{tenant_name}を入れるでも、OrchestratorのURLも元に"/swagger/index.html"入れるでもOKです。

https://cloud.uipath.com/{organization_ID}/{tenant_name}/orchestrator_/swagger/index.html

{organization_ID}の{}は置き換えの際は不要な記号です。以降に{文字列}で記載している{}も同様に不要になります。

image.png

2.1 プロセスのReleaseKeyを取得する

ジョブを開始するAPIで、対象プロセスのReleaseKeyが必要みたいなので、まずは、下記のAPIを利用して調べます。
尚、利用するAPIは下記をコピペして{organization_ID}と{tenant_name}を入れてジャンプするでも、Swaggerのページで探すでもOKです。

https://cloud.uipath.com/{organization_ID}/{tenant_name}/orchestrator_/swagger/index.html#/Releases/Releases_Get

image.png

Folder IDを調べる方法
Orchestratorで対象フォルダ選択中のURLからでもわかります。fid=と記載されている部分です。

2.2 ジョブを開始して見る

Swaggerへのアクセスは下記からコピペして{organization_ID}と{tenant_name}を入れるでも、OrchestratorのURLをベースに"/swagger/index.html"入れるでもOKです。

https://cloud.uipath.com/{organization_ID}/{tenant_name}/orchestrator_/swagger/index.html#/Jobs/Jobs_StartJobs

image.png

Bodyには下記からコピーして編集するでもOKです。お試しなので、最低限のものだけ入れてます。

{
  "startInfo": {
    "ReleaseKey": "{Keyを入れてください}",
    "Strategy": "ModernJobsCount",
    "JobsCount": 1
  }
}

image.png

対象プロセスのトリガーが掛かっていればSwaggerからの実行は成功です。
image.png

Curlをコピーして控えておきましょう。後で、外部アプリ(コマンドプロンプト)から、このCurlを叩きます。
image.png

3.外部アプリケーションを設定する

下記の手順で操作するだけでOKです。
image.png
image.png
image.png
image.png
image.png
image.png
image.png

4.コマンドプロンプトからトリガーして見る

4.1 トークンを取得する

下記のコマンドをコピーして、先ほど取得してきたアプリID、アプリシークレットを設定し、コマンドプロンプトで叩きます。

curl -d "grant_type=client_credentials&client_id={アプリIDを入れてください}&client_secret={アプリシークレットを入れてください}&scope=OR.Jobs" https://cloud.uipath.com/identity_/connect/token

正常に動作すると下記の様にアクセストークンが返されます。
image.png

4.2 ジョブを開始する

Swaggerでコピーしたジョブ開始のCurlに、先ほど取得してきたアクセストークンを入れ替えてコマンドプロンプトで叩きます。Curlは控えたものを使うので、下記をコピーして使用する必要はありません。参考として載せてます。

curl -X POST "https://cloud.uipath.com/{organization_ID}/{tenant_name}/orchestrator_/odata/Jobs/UiPath.Server.Configuration.OData.StartJobs" -H  "accept: application/json" -H  "X-UIPATH-OrganizationUnitId: {フォルダID}" -H  "authorization: Bearer {返されてきたアクセストークン}" -H  "Content-Type: application/json;odata.metadata=minimal;odata.streaming=true" -d "{  \"startInfo\": {    \"ReleaseKey\": \"{キー}\",    \"Strategy\": \"ModernJobsCount\",    \"JobsCount\": 1  }}"

image.png

対象プロセスのトリガーが掛かっていれば、外部アプリケーション機能を使用したアクセストークン取得で、外部アプリからの実行も成功!

image.png

おわりに

本ブログではコマンドプロンプトで動かしましたが、PowerShell、Jenkinsシェルスクリプト、Pythonなど使いたいスクリプトで実装頂ければと思います。
この体験を得ることで、例えば他のAPIをコールしたい場合も、Swaggerでやってみる、Swaggerの情報を活用する、外部アプリケーション機能(OAuth)で、新しくアプリケーションを追加、もしくは既存のアプリケーションを利用し、必要なスコープを追加すると言ったやり方は容易に想像がつくと思います。

外部アプリケーション機能(OAuth)について、もう少し広く・深く知りたい方は、下記をご参考に。

10
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?