どーもばるすです。
今日もWorkatoについて投稿します。
Workatoをいじっているとレシピをサクッと呼び出す方法が欲しくなるんですよね。
また、Workatoのブログを書く際にはレシピの呼び出し方とか解説すると、内容がちょっと冗長になってしまうんですよね。
どうにか統一したいなーと考えた結果、Slackでちょろっとレシピを呼び出す方法を予めテンプレ化してしまおうとの結論に至りました。
ということで今日の記事は
SlackBotのEvent Subscriptionsを使ってWorkatoを呼び出すレシピのテンプレートを作成する
っていう話です。
ブログ執筆でラクするためのテンプレレシピを作る過程すらもブログにしてしまおうって魂胆です。
今回作成するレシピの全体図

作成完了までの道のり
- SlackBotを作成して初期設定
- WorkatoでCustom AuthProfileとConnectionを作成する
- Workatoでレシピを作成して編集
- SlackBotで追加設定を付与
こんな流れでいきます。
1. SlackBotを作成して初期設定(手順略)
SlackBotを作成

OAuth & Permissionsを設定

2. WorkatoでCustom AuthProfileとConnectionを作成する
Custom AuthProfileを作成

AppConnectionを作成

3. Workatoでレシピを作成して編集
Recipes → Create a new recipeの順にクリックしてレシピを作成

Trigger from an appを選択

app → Slackを選択

Trigger → New eventを選択

Connection → ForBlogBotを選択

Setup → Event名を入力(適当でOK)

Setup → EventURLが出てくるのでコピーしておく

トリガーの条件を設定
※このままだとすべてのイベントで作動してしまうので、条件を設定します。
▼条件:barusuが、特定のチャンネルで何かしらやった時だけ反応する
Set trigger conditionをOnにする

条件を設定する
・User:barusuのUserID

・Channel:特定のチャンネルID

Actionsの+をクリック → IF conditionをクリック

↓

4. SlackBot側で設定をする
Event Subscriptions → Enable Events をOnに


WorkatoでコピーしたイベントURLを貼り付け

Subscribe to bot eventsでEventのトリガーを設定する

Subscribe to events on behalf of usersでEventのトリガーを設定する

SaveChangesをクリックし、WSへ再インストールすれば完了
完成
実用例:barusuが「春は」と発言したらbotが「あげぽよ」と返すレシピを作る
完成形
Before

After

作り方
Setup your condetion をクリックして条件を追加

▼条件:イベントタイプがメッセージ、テキストが「山」と一致する
・Type:message

・Text:春は

Select app and action to do when condition is met をクリックしてSlackを追加

Action → Post message

setup → Channel,textを設定

実行結果

まとめ
なんだかボリュームがすっごく大きくなってしまいましたね…
Workatoはレシピ数で課金なので、トリガーをなるべく統一して管理するのが良いです。
本記事に書いたようなやり方でトリガーを揃えつつ、別の処理をCallableレシピで作成して呼び出すようにすると管理もしやすいし、レシピ数をバカスカ消費することなくて良い感じになります!
このブログ自体、まとめるのに苦労しましたが今後は楽になるはず!
さてとモンハンやるか!!
ではまた次回!!