作ったもの
にゃーん
— パグ (@line6th) 2018年10月4日
↓↓↓つぶやいたらこうなる↓↓↓
**「にゃーん」**ってTwitter
で呟いたらSlack
のStatus Emoji
を変更するだけのアプリをzapierで作りました。
なんで作ったの
むしゃくしゃしたことが30分くらいで作りました。
やっぱり社会人だし理不尽なことがあってもユーモアで解決すべきだよね。大人なんだしって思ったのでIFTTT
も使ったことないですけど作ってみました。
zapierとは
皆さんご存知IFTTT
と同じようなコンセプトのアプリ。
トリガーとアクションがあるだけのシンプルなアプリです。
もちろん最初はIFTTTを検討したのですが、IFTTTにはStatus Emojiの更新が無かったのでzapierを採用しました。
Status Emojiとは
Slackのユーザー名の右側にあるEmojiのことです。
![スクリーンショット 2018-10-04 17.51.03.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2F266497c6-76a6-f16a-4c7c-d8929eeca8ae.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=359054570539e14f8693efe838938f8a)
デフォルトだと休暇中とかリモートとか使えた気がします。
これ、自分で好きなものに変えられます。
それをAPIで更新する方法もあったのですが、そこまでガチでやりたくなかったので、今回は手抜きました。
参考:Slack の Status emoji を API で変更する
zapierを使ってみる
まずはサイトにアクセスして、会員登録を済ませてください。
ZAPの作成
準備ができたらホームにあるMake a Zap!をタップします。本サービス内では、作成したアプリの事をZAPと呼称しているようですね。
まずはトリガーとなるアプリケーションを選択します。今回はTwitterを選択します。
![スクリーンショット 2018-10-04 17.56.41.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2Fd83fb558-f148-200c-f64b-19376f6374a8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=4265b196cf9cc37657f93d54bb67df0b)
今回は自分の投稿を利用したいのでMy Tweetを選択します。
![スクリーンショット 2018-10-04 17.57.40.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2F59730c57-4eab-7211-0cca-d4d9a41412ae.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7d55ffb79c3b068a0a32aff03b4c8395)
次に、連携するTwitterアカウントを聞かれるのでいつもどおりTwitterログインしてください。
サンプルの取得を求められるのでPull in Sampleで読み込みます。
![スクリーンショット 2018-10-04 17.58.35.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2F80789259-3657-cbd9-18e7-014a69b1941f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c99d3d2bb928ef8050ffcce9006f04fd)
読み込むと、自分の直近のTweetが何件か流れてきます。ここで流れて来なければ連携ができていないか、ツイートが無いかだと思うので、自分のツイートが流れていることを確認しましょう。
問題無ければ次のステップに進みます。
フィルターの追加
今の状況だと、なんのツイートをしても処理が通ってしまうことになります。
今日は最高にハイだぜ!バリバリ仕事こなすぜ! って日でも、にゃーんになってしまうのは、残念なことです。。。。
なので、特定のツイートパターンだけのときに処理が通るように編集します。
![スクリーンショット 2018-10-04 18.03.41.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2F07970d1d-fe7c-a2b1-948a-e5c5229c10ae.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=59dce0f569dab0efb6ad28b7d3065db6)
左ペインからAdd a Stepを選択して、Filterを選択してください。
出てきた画面でonly continue if...(...のときだけ続ける)を選択してください。
![スクリーンショット 2018-10-04 18.05.51.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2Fa3dd4a08-4bf7-7638-9976-3e9ea6a2ca23.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=25a7dbe4f3093a7d215e84e26dc095ab)
Text (ツイート)に Contains(含まれていた) ときに 「にゃーん」 という文字列が
のように設定してください。
また、条件はDoes not Contains (含まれていないとき) や、 Exactly matches (完全一致) など、たくさん種類があるので、だいたいカバーできるかと思います。
また、And条件や、or条件なども含められるので、なんでもこいです。
問題なければ、テストをして次に進みましょう。
Slackに通知する(アクション)
最後にSlackに通知を送ります。Add a Step から、Actionを選択します。
もちろんSlackに通知するので、Slackを選択。
今回はStatus Emojiを変更したいので、Set Statusを選択します
![スクリーンショット 2018-10-04 18.11.46.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2F017dc8c4-91fa-5e75-8a58-bd04d305d9d9.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=be675dd1a486af0d57e9afdb6442d71b)
連携するSlackプロジェクト・ユーザーを聞かれるので、適切なユーザーを選択。
![スクリーンショット 2018-10-04 18.22.25.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2Fb17b403e-cffb-bfe9-adf0-e5f04129462f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=15f46762764fb377dd18521e5d2cda2e)
入力は以下の様に
- Status Text ・・・ ステータスに付随して表示されるテキスト
- Status Emoji ・・・ 今回のミソ。slackでいつも使う :hogehoge: のフォーマットで記載
- Expiration Time ・・・ ステータスの期限。流石に明日もにゃーんではいられない。フォーマットはコチラを参照
(なぜかJSTが効かない??僕のフォーマットがおかしいかもしれません。ご存知のかたお教えいただけると嬉しいです)
実際にテストをしてみると・・・?
こんな感じで表示されたら成功です!
最後にこのZAPの名前を決めてチェックをアクティベートすると・・・
![スクリーンショット 2018-10-04 18.25.39.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2F58ea5c50-32a9-3d76-a63a-83823404c355.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=f05267966d086e394d13c14024e794c2)
おめでとうございます!これで簡単ににゃーんできますね!
ハマったところ
もちろん僕はエンジニアなので、デバッグしようとしてみると、
**何故か反映されない!?**😨
実はさっきの確認画面にあるのですが、
![スクリーンショット 2018-10-04 18.25.39.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F63740%2F7c35d066-6c99-3390-371c-47ddf87a350f.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=69778eb09b4e40a7ec59e347e4b95cdd)
5分おきにツイート確認してるから反映遅いかもね!
って書いてました←
実際それぐらい待ってみたらちゃんと反映されてました笑
早く実際試してみたい
仕事せずに作ってたから
チームの人に「にゃーん」の文化が受け入れられるかわからないけど、メンバーに共有して反応を見てみたいと思います。
でも初心者ながら調べながらトータル30分ぐらいで出来たから良かったかと思います。執筆に1時間ぐらいかかってるけど
IFTTTと比較して
あまりIFTTT使ったことねーけどFilter機能が強いんじゃないかなって思います。
jsでかけるinlineコードも書けるし、
アプリ一覧見てるとJenkinsもあったりするので、結構エンジニアにも寄ってるのかなって印象です。
これからもっと使ってみて、考えてみたいと思います。