CG・映像デザイナー技術ブログ

【Slack】ChatWorkのメッセージをSlackへ転送する方法

assistant すいみん

こちらのCGメソッドの記事ではChatWorkのメッセージをSlackへ転送する方法を紹介します!これでSlack(スラック)だけ開けば良いので効率化できます
この記事の著者
CGブロガー すいみん

CGブロガー

すいみん

Suimin

プロフィール

某美大の油絵科を卒業後、大手CG映像プロダクションに入社。
その後ゲーム業界に転職。
現在は技術系のCGデザイナーをしています。 書籍:Unity デザイナーズ・バイブル
プロフィール詳細はこちら

ChatWorkのメッセージをSlackへ転送する条件

ChatWorkのメッセージをSlackへ転送する条件は下記の4点になります。

①通知だけでなく、メッセージの内容も転送する
②自分宛ての通知のみ転送
③すべてのルームの自分宛ての通知を転送したい
④他のサービス(zapierとかAWS Lambdaとか)はできれば使わず、Google Apps Scriptだけでなんとかしたい

ネットで公開されているものをいくつか試したのですが、理想のものは見つかりませんでした。

  • Toが既読されるまで、メッセージが投稿され続けたり
  • すべてのメッセージがGmailに大量に転送されたり(かつ同じメッセージを取得し続けたり)
  • 通知がありましたのみ表示されたり

納得いかなかったので、一番理想に近かったこちらのコードを参考に特定のルームに自分宛ての通知のみ、メッセージ内容も込みで転送させてみました。
参考 ChatWorkのメッセージをSlackに通知するBotを作ってみたAdwaysEngineersBlog

ChatWorkのメッセージをSlackへ転送する方法

  1. チャットワークAPIの取得します(あとは自分のIDと取得したいルームIDも調べておきましょう)

  2. Slack APIのトークンを下記のURLから取得します。
    参考 Legacy tokensapi.slack.com
  3. Google Apps Scriptに下記のコードをコピペします
    xxxxx部分は手入力します

  4. 実行(chatworkToSlack)しましょう。
    通知を何分間隔でスクリプトを実行するかの設定は、下記の記事を参照してください
    【ChatWork】時間指定可!チャットワークに予約投稿する方法

ChatWorkのメッセージをSlackへ転送した結果

①②④の条件を満たして、うまくいきました。
③に関しては、取得したいルームIDを配列へ入れてやります。

テストするときは、マイチャットで自分のIDを入れると、自分に対してTOで通知できて便利です!

以上、すいみん(@cg_method)でした!