A2019でAPI<基本の4選>


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": "[email protected]",
    "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"
}

レスポンス例:

{
&nbsp;&nbsp;"deploymentId": "bo21087f-506a-4521-w21a-9a4l1d477c0f"
}

この4つさえおさえておけば、様々なサービスやシステムとの連携の幅が広がり、AIチャットボットなどと連携したアプリケーションの実現も容易になるかと思います。