個人用アクセストークンとAPIトリガーを試してみた

UiPath OrchestratorのAPIトリガーを利用したRPAプロセス呼び出しをご紹介します。

Orchestratorの23.10でリリースされた[APIトリガー](https://docs.uipath.com/ja/orchestrator/automation-cloud/latest/user-guide/managing-api-triggers "APIトリガー")はBearer認証です。Power AutomateのHTTPアクションの「認証の種類」にはBearer認証がありませんが（※）Headersに記載すれば呼び出せます。（※2024年1月11日現在）


用意するもの
- Microsoft　Power Automate
- UiPath　Orchestrator（Automation Cloud版）

１　AutomationCloudでトークンを生成する

　１－１　個人用アクセストークンの生成を押します
 　画面右上の個人のアイコンを押して「設定」押します。その後、左のメニューから「個人用アクセストークン」を選択し「新しいトークンを生成」を押します

:::note info
[個人用アクセストークン](https://docs.uipath.com/ja/automation-cloud/automation-cloud/latest/admin-guide/external-applications-personal-access-tokens)の公式ドキュメント
:::

   
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/5f945af6-f577-935b-26e3-8e76edad9c4d.png)


　１－２　トークンに名前と有効期限を設定します。
 リソースは「Orchetrator API Access」範囲は「OR.Jobs」 としてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/8dafc2cd-1665-9cde-ec89-07a6b8ca0f53.png)
 

 １－３ トークン発行
 
:::note info
トークンはコピーしてください。表示されるのはこの一回だけです。トリガーAPI呼び出し側で使用します。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/ca79fa72-54f1-de53-225a-e3d1bfa1306c.png)

２　事前作業　OrchestratorでトリガーAPIを定義する

　２－１トリガー作成
 オートメーション＞トリガー＞APIトリガーに遷移して「新しいトリガーを追加」を押します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/67008f9c-6f85-0ee4-125d-db3f66106ba2.png)

　２－２　APIトリガーの定義

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/4bfbafd9-29c1-ee20-2fea-4052e1a0cfeb.png)


以下の項目以外は、タイムトリガーと同様なので割愛します。
| 項目 | 設定内容 |
|:-:|:-:|
|範囲   | GET  |
|スラグ   | 分かりやすい名前を付けてください。APIのURI末尾に付加されます。 |
|呼び出しモード   |  非同期ポーリング |

:::note info
[APIトリガーの呼び出しモード](https://docs.uipath.com/ja/orchestrator/automation-cloud/latest/user-guide/managing-jobs#starting-a-job-through-an-api-trigger)
     - 非同期ポーリング
　     呼び出し側が定期的にステータスをポーリングする必要があります
     - 非同期で完了を待たずに実行 (fire & forget)
    　 ジョブが正常に作成されると 200 OK ステータスを返します
     - 同期 (ロングポーリング)
     　ジョブが完了するまでしばらく待機し、その後にブロック呼び出しとリダイレクトが数回行われる可能性があります。ジョブの最長実行時間は 15 分間です。
:::


２ー３　APIトリガーのURL定義

「完全なスラグURLをコピー」を押すとURLをコピーできます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/4f1b8b17-0b05-82c2-ea91-0358fbc3beec.png)


 
３　Power AutomateからOrchestratorのAPIを呼び出だす

　３－１　フローからHTTPアクションを追加します
 　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/8070534c-53d1-cf4f-e95a-ca37d30621dd.png)

　３－２ただし、HTTPアクションの「認証の種類」にはBearer認証がありません

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/fa450c90-6e63-7f79-9448-60e3948cbc8d.png)

　3-3　Headersに以下の値を入れれば大丈夫です
 | 項目 | 値 |
|:-:|:-:|
| URI  |  ２ー３「完全なスラグURLをコピー」の値 |
| Method  | GET  |
|Headersのキー   | Authorization  |
|Headersの値   | Bearer [1-3 トークン発行でコピーした値]  |

:::note info
Headersの値	では、Bearerと[ベアラートークンの値]の間に半角スペースを入れます。
:::

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/db1d355a-6d56-3ed2-b673-d479aa44ab3d.png)

　３－４　作成したPower Automateのフローをテストします

- PowerAutomate側で成功が出てます
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/bbbcc396-3445-984e-a9f6-4411fca96cca.png)

- Orchestrator 側もAPITriggerが起動され成功しています
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3495721/6ff3ff59-9d44-d4c8-2f47-85d9e13fffcb.png)


以上です:smile: