どーもばるすです。
今日もWorkatoについて投稿します。
Workatoをいじっているとレシピをサクッと呼び出す方法が欲しくなるんですよね。
また、Workatoのブログを書く際にはレシピの呼び出し方とか解説すると、内容がちょっと冗長になってしまうんですよね。
どうにか統一したいなーと考えた結果、Slackでちょろっとレシピを呼び出す方法を予めテンプレ化してしまおうとの結論に至りました。
ということで今日の記事は
SlackBotのEvent Subscriptionsを使ってWorkatoを呼び出すレシピのテンプレートを作成する
っていう話です。
ブログ執筆でラクするためのテンプレレシピを作る過程すらもブログにしてしまおうって魂胆です。
今回作成するレシピの全体図
![](/wp-content/uploads/2021/04/image-10.png)
作成完了までの道のり
- SlackBotを作成して初期設定
- WorkatoでCustom AuthProfileとConnectionを作成する
- Workatoでレシピを作成して編集
- SlackBotで追加設定を付与
こんな流れでいきます。
1. SlackBotを作成して初期設定(手順略)
SlackBotを作成
![](/wp-content/uploads/2021/04/image-4.png)
OAuth & Permissionsを設定
![](/wp-content/uploads/2021/04/image-5.png)
2. WorkatoでCustom AuthProfileとConnectionを作成する
Custom AuthProfileを作成
![](/wp-content/uploads/2021/04/image-1.png)
AppConnectionを作成
![](/wp-content/uploads/2021/04/image-2.png)
3. Workatoでレシピを作成して編集
Recipes → Create a new recipeの順にクリックしてレシピを作成
![](/wp-content/uploads/2021/04/image-6.png)
Trigger from an appを選択
![](/wp-content/uploads/2021/04/9469218b5ceb47f5aab6bcb45243fd38.png)
app → Slackを選択
![](/wp-content/uploads/2021/04/b79be31359f94f5880c429aac27c2b5b.png)
Trigger → New eventを選択
![](/wp-content/uploads/2021/04/23cfc29a84ed49638eb917a1ab54eefe.png)
Connection → ForBlogBotを選択
![](/wp-content/uploads/2021/04/9e0568218245498a90b2426ce73be61d-1.png)
Setup → Event名を入力(適当でOK)
![](/wp-content/uploads/2021/04/ad04f66e55864b84979c0db36092cf69.png)
Setup → EventURLが出てくるのでコピーしておく
![](/wp-content/uploads/2021/04/7bd8920575c644e1921f363a90f05d8c.png)
トリガーの条件を設定
※このままだとすべてのイベントで作動してしまうので、条件を設定します。
▼条件:barusuが、特定のチャンネルで何かしらやった時だけ反応する
Set trigger conditionをOnにする
![](/wp-content/uploads/2021/04/image-7.png)
条件を設定する
・User:barusuのUserID
![](/wp-content/uploads/2021/04/e9246656bd4c45c89e0229e695cfc9ca.png)
・Channel:特定のチャンネルID
![](/wp-content/uploads/2021/04/cb7b49d021394dd69fcb98b44a1a61c6.png)
Actionsの+をクリック → IF conditionをクリック
![](/wp-content/uploads/2021/04/0fc0ffbf319f420da87eda0ad26db632.png)
↓
![](/wp-content/uploads/2021/04/5fba7a2a2e2042699d4d90406461d682.png)
4. SlackBot側で設定をする
Event Subscriptions → Enable Events をOnに
![](/wp-content/uploads/2021/04/466cc1ce9f7e4fca93a7416846efc7d9.png)
![](/wp-content/uploads/2021/04/image-8.png)
WorkatoでコピーしたイベントURLを貼り付け
![](/wp-content/uploads/2021/04/image-9.png)
Subscribe to bot eventsでEventのトリガーを設定する
![](/wp-content/uploads/2021/04/1e091d02373c40a28d4232ecc3da6afa.png)
Subscribe to events on behalf of usersでEventのトリガーを設定する
![](/wp-content/uploads/2021/04/33d8c060204d4719a7eb906d095db5d5.png)
SaveChangesをクリックし、WSへ再インストールすれば完了
完成
実用例:barusuが「春は」と発言したらbotが「あげぽよ」と返すレシピを作る
完成形
Before
![](/wp-content/uploads/2021/04/image-11.png)
After
![](/wp-content/uploads/2021/04/image-12.png)
作り方
Setup your condetion をクリックして条件を追加
![](/wp-content/uploads/2021/04/image-13.png)
▼条件:イベントタイプがメッセージ、テキストが「山」と一致する
・Type:message
![](/wp-content/uploads/2021/04/732cd235716544898a33305a0bd1b5e8.png)
・Text:春は
![](/wp-content/uploads/2021/04/ed00331d3de442999ed4d97112fbb132.png)
Select app and action to do when condition is met をクリックしてSlackを追加
![](/wp-content/uploads/2021/04/image-14.png)
Action → Post message
![](/wp-content/uploads/2021/04/feba031bedbe47d3a47013e3204e0583.png)
setup → Channel,textを設定
![](/wp-content/uploads/2021/04/927dcb40dace46b7b3480b998fb140f2.png)
実行結果
![](/wp-content/uploads/2021/04/6c077d3aa0134dcba9cf1eac1fa6e616.png)
まとめ
なんだかボリュームがすっごく大きくなってしまいましたね…
Workatoはレシピ数で課金なので、トリガーをなるべく統一して管理するのが良いです。
本記事に書いたようなやり方でトリガーを揃えつつ、別の処理をCallableレシピで作成して呼び出すようにすると管理もしやすいし、レシピ数をバカスカ消費することなくて良い感じになります!
このブログ自体、まとめるのに苦労しましたが今後は楽になるはず!
さてとモンハンやるか!!
ではまた次回!!