10分でできる chatwork  × Google Apps Script で Hello world!

Slack, LINE, Discord, chatrowk, ハングアウト, Skype など、チャット系サービスに疲れ果てていませんか。
チャットによって時間を奪われないために、

- 決まり切ったことはスクリプトを使って自動化／半自動化
- 使っていてよく困ることをスクリプトを使って解決

したいですよね。
これまでは周囲の開発者が素敵な感じにチャットbotを運用してくれてチャット負荷を低減してくれていましたが、いろんなサービスを並行利用するようになってきてもう限界です。私、ぷっつんしちゃいました。少しずつ自分でbotをごにょごにょできるようになっていきたいです。

ここでは chatwork に焦点を当てて、Google Apps Script (GAS)を使っていろいろやってみようと思っています。
chatwork は WebHook 対応, IFTTT（イフト）対応もしているので、ここに GAS を混ぜて化学反応を起こせばいろいろできそうな気がします。 
今回は手始めに環境を準備して、「Hello world!」してみます。

# 必要なもの
- Google アカウント
- chatwork アカウント

Google Apps Script はブラウザさえあれば、特別な環境がいらないのが素敵ですね。

# chatwork ×  Google Apps Script の環境準備

## chatwork アカウントを準備する
アカウントがない方はフリーアカウントをとっておきましょう。

### 新規登録する  
https://www.chatwork.com/login.php  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/b47fe0ab-ebec-167e-4ad9-e8efa948e9b6.png)

## chatwrok アカウントの API Token 取得する 

GAS から API を使ってごにょごにょするために必要な鍵みたいなものを入手します。
**⚠️ ゼッタイに人に教えてはダメな鍵です。取り扱いは注意しましょう！**

1. ログイン
1. 「API設定」を開く  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/e2f188cd-1d16-de2b-50c9-1cd3a7a6b956.png)
1. API Token を表示してコピーしておく  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/fcbb5fb5-9baa-d50b-ab36-2edbef6a7549.png)

## chatwrok アカウントのアカウントID確認

スクリプトでごにょごにょするとき自分の「アカウントID」を使うことがあるので確認しておきましょう。

1. 「動作設定」を開く  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/5dd8a6ff-cbeb-2b25-cd80-1f317e1e3f82.png)
2. アカウントID  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/a117fc29-2441-27d4-62e1-48d2b079d86f.png)

## Google Apps Script の初回環境準備

Google Apps Script 使ったことがなければ初回だけ環境設定します。

1. Google ドライブ にアクセス
2. 「新規」から「アプリ追加」  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/30d3e1cd-76fe-a763-921c-fa8073a0a8dd.png)
1. 「Google Apps Script」で検索して「接続」  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/fabec7b5-46c8-db66-1d2b-7be6498ce15c.png)

## 任意でやっておくとよい設定

### chatwork アカウントのプロフィール設定
chatwork アカウント取り違えたりしないように、プロフィールはわかりやすく設定しておきたいものです。
アイコンと表示名を適切に設定して、お遊び用のアカウントだと視認しやすくしましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/8fba3cf5-5f50-14db-2eac-e71d41fcd392.png)

### 通知をOFFに
chatwork はデフォルトで未読通知がメールで届きます。
お遊び用アカウントでは確実にウザイので切りましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/1c986690-2827-9d08-5ab4-d9b46410c37b.png)

# chatwork  × Google Apps Script で 「Hello World」
準備ができましたので、さっそく Google Apps Script から chatwork にメッセージを投稿してみましょう。
「マイチャット」に「Hello World」というメッセージを投稿してみます。

1. Google ドライブから「新規」で「Google Apps Script」
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/68689fae-4315-3889-a820-26237fd5af3f.png)

2. Google Apps Scriptのスクリプトエディタが開きます
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/63bde4ee-dc22-da96-9dfb-373cf734eea0.png)

3. プロジェクト名を適当に設定します。
なんでもいいのですが、とりあえず `chatwork_hello_world` とか。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/b2266069-720a-6ec0-ef7e-9ac6461eecfd.png)

3. chatwork のライブラリを追加する  
Google Apps Script から chatwork API をカンタンに使えるようにするライブラリが配布されています。
それを使えるようにするおまじないです。
    + 「リソース」 - 「ライブラリ」を選択  
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/5cd0aa50-f050-51d2-e2a4-3e6f3d73962a.png)
    + ライブラリ追加に `M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT` をコピペして「追加」
    + バージョンに「18」（一番新しい番号）を選択
    + 「保存」クリック  
    ![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/0422bb93-8433-4b51-87c9-7a1a9b93dacc.png)
1. マイチャットのルームID確認 
マイチャットを選択してURLバーに表示される `$!ridXXXXX` の数字がルームIDです。（下記参照）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/5bf4f32a-7065-8d7a-0e82-56ab4f55f8b5.png)
4. Hello world のサンプルコードをスクリプトエディタにコピペ
下記コードをスクリプトエディタにコピペしてみましょう。

    ```js
    function sendMessage() {
      var api_key = '(API Tokenをコピペ)';
      
      var client = ChatWorkClient.factory({token: api_key});
      client.sendMessage(
        {
          'room_id': （マイチャットのridをコピペ）,
          'body': 'Hello world!',
        }
      );
    }
    ```  
`api_key` には `chatwrok アカウントの API Token 取得する` で取得した文字列を、
`room_id` には上の手順で確認したルームIDの数値を設定します。
例）
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/661ab627-1923-10dc-e290-3f8c43cb8a00.png)

5. [ファイル] - [保存]  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/6947722e-b894-d4f5-9958-f91dc37d7d47.png)

6. 実行！
    + `sendMessage` を選択（画像参照）
    + `▶` で実行  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/e8606697-e1ce-9f00-a035-2ab76d19e4b1.png)

7. ダイアログが表示されるので「許可を確認」から「許可」する（初回実行時だけ）  
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/07bb4d73-8235-5be9-91a1-1b46b1081e5d.png)

8. 実行完了すると、「マイチャット」にメッセージが投稿されます 🙌
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/2c8d6f2e-9f7d-5eb6-fc8a-be32f8a36143.png)

9. せっかくですので、メッセージを変えて、もう一度実行してみましょう
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/801b6392-708f-ed83-010c-dbb1ec00f294.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/191263/ae74070e-5f4c-a424-1485-bd27a1df8cc1.png)

無事に投稿されましたね 🙌