【プログラム無し】zapierでTwitterで「にゃ〜ん」って呟いたらSlackのStatus Emojiを変更する

# 作ったもの

<blockquote class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">にゃーん</p>&mdash; パグ (@line6th) <a href="https://twitter.com/line6th/status/1047768706359521282?ref_src=twsrc%5Etfw">2018年10月4日</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

↓↓↓つぶやいたらこうなる↓↓↓

![スクショ.png](https://qiita-image-store.s3.amazonaws.com/0/63740/7e5bebf3-38b6-b3e0-f055-41835d48f57f.png)

**「にゃーん」**って`Twitter`で呟いたら`Slack`の`Status Emoji`を変更するだけのアプリを[**zapier**](https://zapier.com/app/home)で作りました。

# なんで作ったの

むしゃくしゃしたことが30分くらいで作りました。

やっぱり**社会人だし理不尽なことがあってもユーモアで解決すべきだよね。大人なんだし**って思ったので`IFTTT`も使ったことないですけど作ってみました。

# zapierとは

皆さんご存知`IFTTT`と同じようなコンセプトのアプリ。
**トリガー**と**アクション**があるだけのシンプルなアプリです。

もちろん最初はIFTTTを検討したのですが、IFTTTには**Status Emoji**の更新が無かったので**zapier**を採用しました。

# Status Emojiとは

Slackのユーザー名の右側にあるEmojiのことです。

<img width="204" alt="スクリーンショット 2018-10-04 17.51.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/266497c6-76a6-f16a-4c7c-d8929eeca8ae.png">

デフォルトだと**休暇中**とか**リモート**とか使えた気がします。
これ、自分で好きなものに変えられます。

それを**APIで更新する方法**もあったのですが、そこまでガチでやりたくなかったので、今回は手抜きました。

参考：[Slack の Status emoji を API で変更する](https://qiita.com/tanjo/items/63fef4b66c020a067449)

# zapierを使ってみる

まずは[サイトにアクセス](https://zapier.com/app/home)して、会員登録を済ませてください。

## ZAPの作成


準備ができたらホームにある**Make a Zap!**をタップします。本サービス内では、作成したアプリの事を**ZAP**と呼称しているようですね。

まずはトリガーとなるアプリケーションを選択します。今回は**Twitter**を選択します。

<img width="828" alt="スクリーンショット 2018-10-04 17.56.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/d83fb558-f148-200c-f64b-19376f6374a8.png">

今回は**自分の投稿を利用したい**ので**My Tweet**を選択します。

<img width="810" alt="スクリーンショット 2018-10-04 17.57.40.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/59730c57-4eab-7211-0cca-d4d9a41412ae.png">

次に、連携するTwitterアカウントを聞かれるのでいつもどおりTwitterログインしてください。

**サンプルの取得を求められる**ので**Pull in Sample**で読み込みます。

<img width="817" alt="スクリーンショット 2018-10-04 17.58.35.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/80789259-3657-cbd9-18e7-014a69b1941f.png">

読み込むと、自分の直近のTweetが何件か流れてきます。**ここで流れて来なければ連携ができていないか、ツイートが無いか**だと思うので、自分のツイートが流れていることを確認しましょう。

問題無ければ次のステップに進みます。

## フィルターの追加

今の状況だと、**なんのツイートをしても処理が通ってしまう**ことになります。

**今日は最高にハイだぜ！バリバリ仕事こなすぜ！** って日でも、にゃーんになってしまうのは、残念なことです。。。。

なので、**特定のツイートパターンだけのとき**に処理が通るように編集します。

<img width="394" alt="スクリーンショット 2018-10-04 18.03.41.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/07970d1d-fe7c-a2b1-948a-e5c5229c10ae.png">

左ペインから**Add a Step**を選択して、**Filter**を選択してください。

出てきた画面で**only continue if...**(...のときだけ続ける)を選択してください。

<img width="807" alt="スクリーンショット 2018-10-04 18.05.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/a3dd4a08-4bf7-7638-9976-3e9ea6a2ca23.png">

**Text** (ツイート)に **Contains**(含まれていた) ときに **「にゃーん」** という文字列が

のように設定してください。
また、条件は**Does not Contains** (含まれていないとき) や、 **Exactly matches** (完全一致) など、たくさん種類があるので、だいたいカバーできるかと思います。

また、**And条件**や、**or条件**なども含められるので、なんでもこいです。

問題なければ、テストをして次に進みましょう。

## Slackに通知する(アクション)

最後にSlackに通知を送ります。**Add a Step** から、**Action**を選択します。

もちろんSlackに通知するので、**Slack**を選択。

今回は**Status Emoji**を変更したいので、**Set Status**を選択します

<img width="800" alt="スクリーンショット 2018-10-04 18.11.46.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/017dc8c4-91fa-5e75-8a58-bd04d305d9d9.png">

連携するSlackプロジェクト・ユーザーを聞かれるので、適切なユーザーを選択。

<img width="646" alt="スクリーンショット 2018-10-04 18.22.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/b17b403e-cffb-bfe9-adf0-e5f04129462f.png">

入力は以下の様に
* **Status Text** ・・・ ステータスに付随して表示されるテキスト
* **Status Emoji** ・・・　今回のミソ。slackでいつも使う :hogehoge: のフォーマットで記載
* **Expiration Time** ・・・ ステータスの期限。流石に明日もにゃーんではいられない。フォーマットは[コチラ](https://zapier.com/help/advanced-tips/#datetimes)を参照

（なぜかJSTが効かない？？僕のフォーマットがおかしいかもしれません。ご存知のかたお教えいただけると嬉しいです）

実際にテストをしてみると・・・？

![スクショ.png](https://qiita-image-store.s3.amazonaws.com/0/63740/7e5bebf3-38b6-b3e0-f055-41835d48f57f.png)

こんな感じで表示されたら成功です！

最後にこの**ZAP**の名前を決めてチェックをアクティベートすると・・・

<img width="651" alt="スクリーンショット 2018-10-04 18.25.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/58ea5c50-32a9-3d76-a63a-83823404c355.png">

おめでとうございます！これで簡単ににゃーんできますね！

# ハマったところ

もちろん僕は**エンジニア**なので、**デバッグしようとしてみると**、

**何故か反映されない！？**😨

実はさっきの確認画面にあるのですが、

<img width="651" alt="スクリーンショット 2018-10-04 18.25.39.png" src="https://qiita-image-store.s3.amazonaws.com/0/63740/7c35d066-6c99-3390-371c-47ddf87a350f.png">

**5分おきにツイート確認してるから反映遅いかもね！**

って書いてました←

実際それぐらい待ってみたらちゃんと反映されてました笑

# 早く実際試してみたい

~~仕事せずに作ってたから~~
チームの人に「にゃーん」の文化が受け入れられるかわからないけど、メンバーに共有して反応を見てみたいと思います。

でも初心者ながら調べながらトータル30分ぐらいで出来たから良かったかと思います。~~執筆に1時間ぐらいかかってるけど~~

# IFTTTと比較して

~~あまりIFTTT使ったことねーけど~~**Filter**機能が強いんじゃないかなって思います。
**jsでかけるinlineコード**も書けるし、
アプリ一覧見てると**Jenkins**もあったりするので、結構エンジニアにも寄ってるのかなって印象です。

これからもっと使ってみて、考えてみたいと思います。