園児ニアのメモ

ただのエンジニア。何でも屋みたいな扱い受けてます。

【GAS】ChatWorkに投稿

GoogleAppScript(以下GASと省略)でChatWorkに投稿する方法です。

ChatWorkAPIトークンの発行

まずはChatWorkAPIを使用するためにChatWorkからAPIトークンを発行する必要があります。

以下がChatWork公式のAPIドキュメントです。
developer.chatwork.com

ドキュメントの通り、動作設定を開き
f:id:nanokanato:20170828102714p:plain:w300

出てきたウィンドウのAPI発行のタブを表示して、パスワードを入力すればAPIトークンが表示されます。
f:id:nanokanato:20170828103023p:plain:w300

初回はAPIトークンが発行されていないので発行待ちがあるのと、ChatWorkに個人ではなく企業で契約していると管理者しかAPI発行のタブが表示されませんのでご注意ください。

GASに書き込み

APIトークンの取得に成功したら、GASで投稿してみましょう。
GASの準備などはこちらにまとめていますので参考にどうぞ。
madgenius.hateblo.jp

ChatWorkClientというライブラリを使用しますので「リソース > ライブラリ」を開き、プロジェクトキーに「1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav」を入力してライブラリを追加してください。
f:id:nanokanato:20170829123103p:plain:w300

以下のメソッドに引数を渡してあげるとその引数の文字列を投稿してくれます。

function ChatWorkSend(strBody) {
    //ChatWorkに予定一覧を投稿する
    var client = ChatWorkClient.factory({token:"????????"});
    client.sendMessage({
        room_id:00000000,
        body:strBody
    });
}
  • 「token:"????????"」の????????の部分に先ほど取得したAPIトークンを書き換え。
  • 「room_id:00000000」の00000000の部分にChatWorkのルームIDを設定してください。
    • ルームIDはAPIトークンを発行したアカウントが投稿できるルームを開きブラウザのURLの「kcw.kddi.ne.jp/#!rid00000000」のrid以下の数字になります。
    • また、アプリ版を使っている場合はURLが見れませんが、メッセージのURLをコピーするリンクボタンを押すとridが取得できます。

利用方法

簡単な例としては...
「ChatWorkSend("おはよう")」などをトリガーで日タイマー,午前7時~8時で登録すれば毎朝7時~8時に「おはよう」とChatWorkに投稿してくれます。

これだけではただのBotですが、GASはGoogleのサービスはもちろんTwitterなどAPIが公開されているサービスと連携できるのでいろいろな使い道があります。
面白い使い道があればぜひ私にも教えてください。