タイトルの通り、UiPathの「HTTP要求」アクティビティを使ってkabuステーションにAPIで接続し、トークンを取得する。
実装
「HTTP要求」アクティビティを使うが、標準では入っていないのでまずは「UiPath.WebAPI.Activities」パッケージをインストールする。
インストールしたら「HTTP要求」アクティビティを配置し、「設定」を開く。
HTTP要求ウィザードが開くので、以下の通り設定する。
- エンドポイント:
"http://localhost:18081/kabusapi/token"
1 - 要求メソッド:
POST
- 応答を次のとおりに受け入れる:
JSON
- 「ヘッダーを追加」を押して行追加し、以下2つを追加
- 名前:
Content-Type
,値:"application/json"
- 名前:
Accept
,値:"application/json"
- 名前:
HTTP要求ウィザードで設定が完了したら、プロパティパネルのオプション項目から「本文」と「本文形式」を設定する。本文のパスワード
のところは各自のパスワードを入れる。
- 本文:
"{""APIPassword"":""パスワード""}"
- 本文形式:
"application/json"
最後に、レスポンスを受ける受け取るために出力項目の「応答コンテンツ」に任意のString型変数を指定する。
「HTTP要求」の設定は以上で終わり。
ちなみにHTTP要求ウィザードでプレビューを試すとBodyをうまく渡せていないのかパラメータ変換エラーになる。ここは気にせず、一度ワークフローを動かして動作を確認してみてほしい。
ワークフローを実行し、「応答コンテンツ」で指定した変数をログに書き出した結果がこちら。正常にトークンを取得できていることを確認できる。
なおパスワードを間違えている場合はエラーコード:4001013が返る。
「応答コンテンツ」で指定した変数にはJSON形式の文字列が返るので、ここからトークンだけ抜き出したい場合は「JSONを逆シリアル化」アクティビティを使って文字列をJObject変数に変換し、JObject変数("Token").ToString
の形で抜き出す。
以上で、無事にトークンだけを取得することができた。
UiPathならAPIを使わなくてもkabuステーション自体をGUIで操作できるが、APIを使えるなら使ったほうが速く安定して動かせるだろう。余裕があれば積極的に活用していきたい。
参考
動作環境
UiPath.WebAPI.Activities 1.21.1
-
localhost:18081
は検証用、localhost:18080
が本番用。 ↩