AutomationAnywhere社のA2019でAPIを使用する基本的な例4選です。
Chromeをお使いであれば、Chromeウェブストアから拡張ツール「Advanced REST client」などを使われると、お手軽に試していただけます。
###1. トークンの取得
A2019ではセキュリティ上の観点から、定期的にアクセストークンが更新されます(デフォルトは20分)。そのため、何はともあれ、まずは新しいトークンの取得(トークンの更新)になります。
リクエストメソッド:
POST
リクエストURL:
a2019Url
/v1/authentication
例:https://a2019.hogehoge.com/v1/authentication
ヘッダー:
content-type:application/json
ボディ:
userName - Control RoomeへのログインID
apyKey - Control Roomへログインし右上のユーザーメニューから取得
※APIキーの代わりにパスワードによる認証も可能です。その場合、 ***apiKey
句の代わりにpassword
***句を使い、Cntrol Roomへログインする際のパスワードを指定します。
{
"username": "(userName)",
"apiKey": "(apiKey)"
}
レスポンス例:
{
"token": "lqXhbGciOpJSUcUxMiJ3.eyJzdTIiLiIbNSIsI・・・", <-- token
"user": {
"id": 15,
"email": "stig@hogehoge.com",
"username": "stig",
(以下省略)
#####(注)token取得後に当該userIDでControl Roomへログインすると、取得したtokenが無効となりますので注意してください。その場合、新たにtokenを取得し直す必要があります。また、設定されている有効期限経過後(デフォルト20分)の場合も同様に再取得が必要になります。
###2. ユーザー情報の取得
リクエストメソッド:
POST
リクエストURL:
a2019Url
/v1/usermanagement/users/list
例:https://a2019.hogehoge.com/v1/usermanagement/users/list
ヘッダー:
token - 「1.トークンの取得」にて得たtoken値
content-type:application/json
x-authorization:token
ボディ:
userName - Control RoomeへのログインID
{
"filter": {
"operator": "eq",
"value": "(userName)",
"field": "username"
}
}
レスポンス例:
{
"page": {
"offset": 0,
"total": 221,
"totalFilter": 1
},
"list": [{
"id": 361, <-- userId
"username": "RunUser",
(以下省略)
(TIPS)ユーザーリストを取得したい場合は、ボディ部へ以下を指定すると取得できます。
{
"fields": [
"username,id"
],
"page": {
"offset": 0,
"length": 0
}
}
###3. ボット情報の取得
リクエストメソッド:
POST
リクエストURL:
a2019Url
/v2/repository/file/list
例:https://a2019.hogehoge.com/v2/repository/file/list
ヘッダー:
token - 「1.トークンの取得」にて得たtoken値
content-type:application/json
x-authorization:token
ボディ:
botName - ボットの名前
{
"filter": {
"operator": "eq",
"value": "(botName)",
"field": "name"
}
}
レスポンス例:
{
"page": {
"offset": 0,
"total": 9577,
"totalFilter": 1
},
"list": [{
"id": "15352", <-- botId
"parentId": "9",
"name": "API_TEST",
"permission": {
(以下省略)
###4. ボットの実行
#####(本例での注意)
- ボットの実行で指定するユーザー(UserId)にはUnattendedユーザーである必要があります。
- 実行されるボット(botId)はあらかじめチェックアウト(公開)されている必要があります。
- ヘッダーで指定するtokenを取得したユーザーとボットを実行するユーザーは権限を有してさえいれば異なっても構いません。
リクエストメソッド:
POST
リクエストURL:
a2019Url
/v3/automations/deploy
例:https://a2019.hogehoge.com/v3/automations/deploy
ヘッダー:
token - 「1.トークンの取得」にて得たtoken値
content-type:application/json
x-authorization:token
ボディ:
botId - 「3.ボット情報の取得」にて得たbotID値
userId - 「2.ユーザー情報の取得」にて得たuserId値
{
"fileId": "(botId)",
"botInput": {
"sInputString1": {
"type": "STRING",
"string": "rgdfg"
;},
"bBooleanInput": {
"type": "BOOLEAN",
"boolean": true
},
"dInputDict1": {
"type": "DICTIONARY",
"dictionary": [
{
"key": "Key 1",
"value": {
"type": "STRING",
"string": "cvbdfgdfg"
}
}
]
}
},
"status": "ACTIVE",
"rdpEnabled": false,
"setAsDefaultDevice": false,
"poolIds": [],
"workspaceName": "public",
"runAsUserIds": [
"(userId)"
],
"scheduleType": "INSTANT"
}
```
**レスポンス例:**
```JSON
{
"deploymentId": "bo21087f-506a-4521-w21a-9a4l1d477c0f"
}
```
###この4つさえおさえておけば、様々なサービスやシステムとの連携の幅が広がり、AIチャットボットなどと連携したアプリケーションの実現も容易になるかと思います。