現在、Logic AppsにはSlackコネクタは「Slackでメッセージを送信する」と動作するものが提供されていません…。
が、Logic Appsには、HTTP経由で任意のエンドポイントと通信できる「HTTPコネクタ」が3種類提供されています。
こんな場合でも、サービス側がAPIを提供していれば、HTTPコネクタをうまく利用することでほぼノンコーディングで仕組みを作ることができます。
…というのをいろいろ試していたら、何の役に立つのか不明なワークフローを錬成してしまったので作り方メモですw
Logic Appsの準備
Logic Appsの全体図はこのような形。たった4つのコネクタでサクッとできますw
今回Slack側は「Slack Event API」を利用するのですが、この設定さえ間違わなければ問題ないかと…。
詳細を @twit_ahf さんがこちらの記事に掲載されているのでぜひ参考にされてください!
https://blog.kuma.icu/2018/08/slack-event-api-bot-logicflow.html
トリガーの設定
「HTTP要求の受信時」コネクタを選択します。
「要求本文の JSON スキーマ」には以下の内容をコピペしてください。
{ "properties": { "challenge": { "type": "string" }, "token": { "type": "string" }, "type": { "type": "string" } }, "type": "object" }
コネクタ:応答
「Slack Event API」を利用する際に検証をクリアする必要があるのですが、そのために「応答」コネクタを利用します。詳細に関してはAPIドキュメントを参考にされてください。
コネクタ:JSONの解析
Slackから投稿した内容のうち、赤枠内の「テキスト」の内容だけを利用したいのですが結果はこのようなJSONが返ってきます。後続のアクションで配列の中から必要な項目を利用できるようにするため「JSONの解析」コネクタを利用します。
「スキーマ」には以下の内容をコピペしてください。
{ "properties": { "event": { "properties": { "channel": { "type": "string" }, "channel_type": { "type": "string" }, "client_msg_id": { "type": "string" }, "event_ts": { "type": "string" }, "text": { "type": "string" }, "ts": { "type": "string" }, "type": { "type": "string" }, "user": { "type": "string" } }, "type": "object" } }, "type": "object" }
コネクタ:ツイートの投稿
「ツイートの投稿」コネクタを選択。動的なコンテンツの項目に「JSON の解析」「text」の項目が出くるのでそれを選択すれば、Slackで投稿したメッセージが利用できます。ハッシュタグはお好みでw
実行してみる
実際に投稿した結果はこちら。
タイムラグなく、テキストとURLもきちんと投稿されています。
最後に
#LogicApps はたったこれだけ。ハッシュタグはLogic Apps側で入れてるからSlack投稿時は入れなくてOKですし、仕事中でも堂々とツイッターできるぞ…!(違)
これは冗談としても、今回のSlackコネクタのように、提供されていない処理もHTTPコネクタをうまく使うと利用できることが多いです。
これを使うとできることも広がるので、おすすめです!