UiPath Orchestrator のAPIを呼び出す件(Postman編)

[UiPath Orchestrator のAPIを呼び出す件](https://qiita.com/masatomix/items/1b03d61d7f5319ceb65f) の記事で [UiPath Orchestrator API](https://docs.uipath.com/orchestrator/lang-ja/reference/about-odata-and-references#about-odata-and-references)を呼び出してみました。その記事ではAPIを呼ぶHTTPリクエストを送信するのに``curl`` コマンドを使用しました。ただ``curl`` は便利なのですが、コマンドプロンプトから実行するなどエンジニア以外のヒトにはとっつきにくいツールだったので、今回はHTTPリクエストを送信する便利ツールの[Postman](https://www.postman.com)を使ってみます。

![u002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/1fc25437-6783-b822-3d6d-1e8fd25c5735.png)


## インストーラのダウンロードと、サインアップ

https://www.postman.com へアクセス。

右上の「Download」をクリック。

![000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/db64a412-45aa-31d9-f59e-f656f058ebfb.png)

環境にあったインストーラをダウンロードします。

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/6fe36f82-8563-7676-2a68-e89b1cfd9df8.png)

ダウンロードしたインストーラを起動すると、そのままアプリが起動します。ちなみに、アプリは2回目以降はスタートメニューから起動可能です。

下記のログイン画面が表示されます。agree のチェックを入れて、今回は「Sing up with Google」をクリック。

![006_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/9f7f2f49-4185-5ae9-9ed9-9a4553880344.png)

ブラウザが起動します。「Continue to Sign in」をクリック。

![007_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/f5ac83ab-e174-484c-9890-414b0f71e612.png)

Googleで認証・認可すると、EULA が表示されるので「Accept」します。

![008_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/86626433-49be-f537-d01a-7159e6ac8559.png)


Sign inが完了しました。

![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/1022fa92-8f06-d5e9-c838-7628edf15f44.png)


すると下記の通りアプリ側もログインが完了するようですね。

![009_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/d1ddd46b-0f93-6b45-4f4a-9624f672884b.png)


## やってみる

### HelloWorld をやってみる

ではさっそく使ってみます。RESTのAPIでよくつかわれる[お天気Webサービス（REST）](http://weather.livedoor.com/weather_hacks/webservice) を呼び出してみましょう。

URLは、http://weather.livedoor.com/forecast/webservice/json/v1?city=130010 です

> 2020/08/26追記:
> まさかの2020/7末で、お天気Webサービスがサービス終了していました。
> まあJSONじゃないけど何らかのレスポンスが返っては来るので、いったんそのままにしておきます、、、。

``curl`` だと

```console
$ curl 'http://weather.livedoor.com/forecast/webservice/json/v1?city=130010'
```

こうです。


メイン部分の「+」ボタンをクリックして、「Request」を新規作成します。

![010_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/74f8eecf-8acb-28d1-7325-21f1d3b92ef3.png)

HTTPリクエストを記述するための画面が表示されるので下記のように「``http://weather.livedoor.com/forecast/webservice/json/v1?city=130010``」と入れてみます。入れた時点でパラメタが解析されて「Query Params」にセットされたりしているのがステキですね。

さて「Send」をクリックします。


![011_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/f68c0143-0691-2dc2-2fa5-00b8707ebbe9.png)


結果が表示されました！簡単ですね。

![012_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/a4bf2b1a-3c43-bda7-996a-ef170abce308.png)


「Request」は保存しておくことができるので、「Save」をクリックします。

![13_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/3bef0261-6ffa-88b1-1e39-7d3146d3e4b3.png)

下記のようなダイアログが開きます。まず名前(Request name)を「130010の天気」とかにします。
どうも「Request」を保存するには「Collection」というフォルダ的なモノがないとダメなので「+ Create Collection」をクリック。

![14_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/1beb2a1d-a886-469d-40c6-0c666e610b1e.png)

Collection名を「Test Folder」として、右のチェックをクリック。

![15_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/54cee4d2-c83d-04ec-02c9-fdf7fec9c4f2.png)


「Save To Test Folder」をクリックすると、、

![16_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/c9eaa698-694a-dcf1-a8c4-0e97a7955b87.png)

Test Folder というハコのなかに、保存されましたね！

![17_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/377e02ea-c7cd-6d8a-bcc1-5e12b2fa74c7.png)



Hello World は以上です。

### UiPath Orchestrator APIのリクエストを投げてみる

最後にUiPath Orchestrator のAPIリクエストを投げてみましょう。
[UiPath Orchestrator のAPIを呼び出す件(アクセストークンの取得)](https://qiita.com/masatomix/items/1b03d61d7f5319ceb65f#%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%AE%E5%8F%96%E5%BE%97) にある、アクセストークンの取得APIの呼び出しです。

前準備として、「[OC画面より「User Key/Client Id」を取得](https://qiita.com/masatomix/items/1b03d61d7f5319ceb65f#oc%E7%94%BB%E9%9D%A2%E3%82%88%E3%82%8Auser-keyclient-id%E3%82%92%E5%8F%96%E5%BE%97)」にしたがって、[Community Cloudの画面](https://cloud.uipath.com/) から [``User Key``],[``Client Id``] を取得しておきましょう。

![u000](https://imgur.com/gLrvqgG.png)


アクセストークンの取得APIの呼び出しは、``curl``だとこうなります(Client Id/User Keyは上記に置き換えてください)。


```console
$ curl -X POST https://account.uipath.com/oauth/token  \
-H 'Content-Type:application/json' \
--data '{"grant_type": "refresh_token", "client_id": "[Client Id]", "refresh_token": "[User Key]"}'
```

では Postman で。

メイン部分の「+」ボタンをクリックして、「Request」を新規作成します。

![u001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/c3b1cff8-9695-b544-8f51-a06660187ea5.png)

- Methodを「POST」にして、URLを入力します
- パラメタは「Body」を選択して
  - 形式を「raw」
  - Text → JSON 
- Bodyのデータは、下記の通り。

```JSON
{
  "grant_type": "refresh_token",
  "client_id": "[Client Id]",   ← 画面から取得したモノで、手動で置き換える
  "refresh_token": "[User Key]"  ← 画面から取得したモノで、手動で置き換える
}
```

とします。

![u002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/1fc25437-6783-b822-3d6d-1e8fd25c5735.png)



さて、実行です。

Sendで実行してみると アクセストークンが取得できましたね！


![u003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73777/12716030-9c95-9401-00b9-5bfe423e777d.png)

次回以降、このアクセストークンを使用して、もっとOrchestrator API を触ってみようと思います。



## 次回以降のテーマ

- Orchestrator APIを使って、ロボットの情報を取得したり、いろいろAPIを触ってみようと思います。
- [``User Key``],[``Client Id``] などは、実際の値で置き換えましたが、変数のままにしておいて、他のリクエストと共有することもできます。同様に、取得したアクセストークンも他のリクエストで使用したいですが、そのTIPSのご紹介。


おつかれさまでしたー。

2020/07/07追記: 記事作成しました
[Postmanで UiPath Orchestrator APIを操作する件 つづき](https://qiita.com/masatomix/items/afbd5325799db241fc8f)


## 関連リンク

- [Postman](https://www.postman.com) 公式
- [UiPath Orchestrator API](https://docs.uipath.com/orchestrator/lang-ja/reference/about-odata-and-references#about-odata-and-references) UiPath公式のドキュメント
- [UiPath Orchestrator のAPIを呼び出す件](https://qiita.com/masatomix/items/1b03d61d7f5319ceb65f) curlでやったときの記事
- [UiPath Orchestrator のAPI を、Node.jsから呼び出すライブラリ](https://www.npmjs.com/package/uipath-orchestrator-api-node) APIのWrapper作ってます
- [UiPath Orchestrator APIのPostman](https://postman.uipath.rocks/?version=latest) いつからあったんだろう。。しらなかった
- [お天気Webサービス（REST）](http://weather.livedoor.com/weather_hacks/webservice) なにげに便利なお天気API