2020年05月27日
Workato(ワーカート)のHTTPコネクタ(汎用コネクタ)でSlack APIエンドポイントを利用する大野 智之 Tomoyuki Ohno
Workatoには、標準で用意されている「Slackコネクタ」「Workbot for Slackコネクタ」を利用すると、Slackと連携することが出来ます。
また、アクションとして存在しない処理は、カスタムアクションとして特定のAPIエンドポイントを指定して利用することが出来ます。
しかし、カスタムアクションで利用可能なAPIエンドポイントが想定しているパーミッションは、各コネクタのOAuth scopesで示されている範囲となっています。
▽Slackコネクタの例
▽Workbot for Slackコネクタの例
では、「WorkatoではOAuth scopesで示されていないパーミッションを必要とするAPIエンドポイントへリクエストを行ったり、そのレスポンス結果を取得して使用することは出来ないのか?」と思われるかもしれませんが、そのようなことはありません。できます。
Workatoには、HTTPコネクタという様々なWeb APIへに利用可能な汎用的なコネクタがあります。
HTTPコネクターを利用すると、SlackコネクタやWorkbot for SlackコネクタのOAuth scopesに無いパーミッションを必要とするAPIエンドポイントを利用することが出来ます。
それでは、以下に対応方法を記載していきます。
まず、Webブラウザから、Slack APIのページ(https://api.slack.com/)を開きます。
ページが表示されたら、「Your Apps」をクリックします。
Your Appsが表示されない場合は(「Your Apps」が「Go to Slack」になっている場合は)、Slackへログインしてから本ページを開きます。
以下のページが表示されたら、「Create New App」をクリックします。
以下のモーダルダイアログが表示されますので、アプリ名(任意の名称)と、利用するSlackのワークスペースを指定して、「Create App」をクリックします。
アプリが作成されると、以下の画面にが表示されますので、「Permissions」をクリックします。
Scopesまでスクロールし、User Token Scopesの「Add an OAuth Scope」をクリックします。
クリックすると、アプリで利用可能なOAuth Scope(パーミッション)を選択することが出来ます。OAuth Scopeは複数指定することが可能です。
OAuth Scopeの設定が完了したら、上にスクロールし、「Install App to Workspace」をクリックします。
以下の画面が表示されますので、「許可する」をクリックします。
OAuth Access Tokenが表示されますので、このトークンを記録(メモ)します。
Workatoへログインし、「App Connections」をクリックします。
「Create a new connection」をクリックします。
「HTTP」を選択します。
以下の画面が表示されますので、次の項目を設定します。設定完了後、「Link your account」をクリックします。
Authorization: Bearer <SlackのOAuth Access Token> |
Connection successと表示されたことを確認します。
「Create a new recipe」をクリックします。
トリガーとするアプリのコネクタ(ワークフロー処理開始時における起点となるアプリ)を選択し、設定のうえ「Next」をクリックします。
「HTTP」をクリックします。
そのまま(Actionに「Send request」が選択されたまま)「Next」をクリックします。
作成したApp Connectionを選択し、「Next」をクリックします。
「I'm an expert. Skip」をクリックします。
以下のようにワークフローの画面が表示されます。
HTTPコネクター(Send request via HTTPと表示されているアクション)をクリックします。
「setup manually」をクリックします。
SlackのAPIリファレンスを参考に、Request URLとMethodを設定します。
Request URL parametersを展開し、「Add URL parameter」をクリックします。
SlackのAPIリファレンスのArgumentsを参考に、パラメーターを設定します。
なお、tokenは設定不要です。(既にApp Connectorで設定済みであるため)
ResponseのResponse schemaの「Use JSON」をクリックします。
SlackのAPIリファレンスのResponseの例をコピーしてWorkatoのJSON Sampleへペーストし、「Next」をクリックします。
例:https://api.slack.com/methods/conversations.history
結果を確認し、「Generate schema」をクリックします。
Response schemaがJSONの結果をもとに生成されたことを確認します。
これ以降は、後続処理の実装を進めていきます。
実際に作成したレシピを実行します。
トリガーによりレシピが実行すると、実行履歴がJobsに追加されます。
このジョブのJob IDをクリックします。
HTTPコネクターのActionをクリックします。
以下のようにリクエストとレスポンスを確認することができます。
Slackクライアント上で確認してみると、該当するチャンネルの結果が取得できていることが確認できます。
以上のように、Workatoの標準コネクタに用意されていない機能や制限されている機能であっても、標準コネクタと比べて手順は増えますが、HTTPコネクタを利用することで対応することができます。
また、標準コネクタであってもノーコードでSlackとの連携が可能ですので、非常に手軽に、簡単にSlackのAPIを利用することが出来ます。
Slack APIを手軽に利用されたい、Slackを効率的に管理したい、Slackと他のシステムを簡単に連携したい、そのようなソリューションをお探しの方は、是非Workatoをご検討ください。
本情報はブログを公開した時点の情報となります。
ご不明な点はお問い合わせください。
アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのサポートではサポートします。
リックソフトのサポートは開発元が提供するサポート以上の価値があります。
ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。
リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。
ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。
日本随一の生産性向上にも効果のある研修サービスです。
リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。