Integromatを使ってTypetalkのボットでメッセージを自動投稿する

タイトルの通り Typetalk に Integromat を利用して30分程度で通知を実現できたので残しておく。

## Integromatとは

一言でいうと、GUIで直感的かつ自由度の高いインテグレーションを実現できるサービス(個人的に)。

とりあえず [Getting Started](https://support.integromat.com/hc/en-us/articles/360001984693-Creating-a-scenario) から触ってみてほしい。

チュートリアルのYoutubeを見るとイメージがつきやすいのではないだろうか。

[![Tutorial: Routers and Filters](http://img.youtube.com/vi/9LEFiQLUyuY/0.jpg)](https://youtu.be/9LEFiQLUyuY)

[Integromat公式はコチラから](https://www.integromat.com/)

昔のエントリ：[アプリケーションをつなぐIntegromatが素晴らしい](https://qiita.com/makky_tyuyan/items/7802bec3a941c5184034)

## Typetalkとは

**組織にアイデアを生み出すビジネスチャットツール** として展開されている。
個人的には、Backlogを活用している場合は超絶オススメだ。
[Typetalk公式はコチラから](https://www.typetalk.com/ja/)

## Integromatを使ってTypetalkへボットのメッセージを通知する

### やりたいこと
Twitterアカウントのツイートを自動的にトピックにメッセージを投稿する。
その際に、メッセージを見返しやすいようにする。

### やったこと
1. Typetalkのボットを設定する。
1. TwitterアカウントとIntegromatを接続する。
1. ScenarioのHTTPリクエストを設定する。
1. Integromatを有効にする。

#### Typetalkのボットを設定する

1. トピック右上の三点リーダーからトピック設定を開く。
2. トピック設定のボットを開く。
![typetalk-bot.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/d041ae30-598f-205d-4675-c5687f7e08ad.png)
3. **新規追加**から必要事項を設定して作成する。
今回はトピックにメッセージを投稿したいので、**topic.post**にチェックをいれる。
Typetalk Token / メッセージの取得と投稿のURLは後で使うのですぐに参照できるようにしておく。
![typetalk-bot-token.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/1df905e8-436a-6b2a-916e-660f07f54846.png)

4. ボットの設定をテストする。
3.の画像の**メッセージの投稿コマンドサンプル** をターミナルにコピペして実行する。"Hello, Typetalk!"がトピックに投稿されればOK。

#### TwitterアカウントとIntegromatを接続する

1. IntegromatのCreate Scenarioを開く。
2. 利用するアプリケーション(Twitter, HTTP)を選択する。
![integromat-search.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/76a653cd-2206-80b5-1466-7179299e8346.png)
3. Twitterアカウントの認証を許可する。
![integromat-createScenario-connect-twitter.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/32d3bfd2-aa64-f99f-a1ba-d5301c21335b.png)

#### ScenarioのHTTPリクエストを設定する

1. トリガーアクション(Twitterのツイート)時に実行するモジュール(HTTP)を設定する。
![integromat-createScenario-select-http-module.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/97624c16-7865-21e7-7009-281ac9a4838c.png)

2. HTTPリクエストを設定する。
HeaderにTypetalk tokenを入力する。
![integromat-postheader.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/2ac1b715-f4ee-d96c-f5de-6a6dd3e37a17.png)
Bodyとして、Field typeは"Text"、Keyは"message"とし、Valueにメッセージを入力する。
![integromat-postmessage.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/847db2b4-6215-4a46-edf9-68b296d7bd7e.png)

**ポイント**
メッセージに「#hogehoge」を入力すると、Typetalkでトピックがまとめられる。
これで、トピック内でメッセージが流れてしまっても後ほどまとめから参照できる。

#### Scenarioを有効にする

1.Scenarioを保存する。
自動保存されないので、SAVEアイコンをクリックすることを忘れないこと。
ちなみに、Scenario作成中もダイアログでSAVEしないと保存されないので「あれ？保存されてない・・・」と地味にハマることがあるので注意。
![integromat-createScenario-10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/5f4cc4a3-5ae4-1927-35ef-dfbcb50449e4.png)
2.インテグレーションをテストする。
**Run Once**をクリックして一度だけトリガーアクションを実行してテストする。
![integromat-createScenario-12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/38b1dfac-35eb-ab76-6149-39447850f4b3.png)
Typetalkのトピックに通知されたら完成！
3.Scenarioを有効にする
忘れずに **SCHEDULING** を **ON** にする。

スケジュールが色々と選べる。目的にあったタイミングを設定する。
**At regular intervals** だと、無料版の上限にあっという間に達すると思う。
![integromat-createScenario-save.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/b750c4d3-47c2-fadb-b64b-e272f5227d09.png)
毎日XX時にチェックする等で必要最低限のWatchとする。
![integromat-createScenario-save02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6311/bdc60678-0ee8-56a0-f207-b77bbeee03a8.png)


### まとめ

HTTPのGETやPOSTがいまいち分かっていない場合、
HTTPリクエストのヘッダー設定で若干手間取るかも知れない。

前提として、[Typetalkの開発ドキュメント(認証と認可)](https://developer.nulab.com/ja/docs/typetalk/auth/#overview)をしっかり読んでから着手することをおすすめする。