LoginSignup
4
3

More than 3 years have passed since last update.

A2019でAPI<基本の4選>

Last updated at Posted at 2020-05-17

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"
}

レスポンス例:

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

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

4
3
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
4
3