menu

チャットワークからSlackの連携をGoogle Apps Scriptを使って送信する方法(画像解説)

公開日:2020年07月17日 カテゴリー:GoogleAppsScript, Slack, ツール

テレワークが普及し、様々なコミュニケーションツールが活用されるようになりました。
弊社でも「Slack」「Skype」や「チャットワーク」などいくつかのツールを使い分けしています。
ただ、複数のツールを利用すると煩雑になったり見逃したりと課題もいくつかあります。
そこでチャットワークのメッセージをSlackに連携することで効率化を図っています。
今回はその手順についてご紹介します。

連携する構成はこんな感じです。
チャットワークとSlackの連携イメージ
「Chatwork Webhook」を利用すると、
メッセージ投稿時に指定のURLにメッセージ内容を送ることができます。
そのWebhookの送信先として「Google Apps Script」を利用します。

こんな人におススメ

  • コミュニケーションツールを効率化したい
  •  ・Slackをメイン、チャットワークをサブのツールとして利用している
     ・チャットワークのメッセージをSlackで一元管理したい
     ・通知を色々なツールに連携し、タイムリーな閲覧や見逃し防止をしたい
     ・Slack、チャットワークの2重管理を効率化したい

  • 技術的に知りたい
  •  ・「Google Apps Script」を使いSlackにメッセージ送信する方法を知りたい
     ・チャットワークWebhookについて知りたい

    などなど

事前準備

Slackアカウント、Chatworkアカウント、Googleアカウントが必要です。
全て登録済みを想定した手順のため未登録の場合は事前に作成してください。
 

Slackアプリの作成

Slackにメッセージを送信するためには、SlackアプリによるBot連携を行います。
Slackアプリが未作成の場合は、今の記事を参考にアプリを作成してください。
アプリ作成後に発行される「Bot User OAuth Access Token」を利用します。

【Slack】無料版でも簡単に作れるSlackアプリで通知Botを作る方法

 

Goole Apps Scriptの設定

「Google Apps Script」の新規作成

「Google Drive」のメニューから「Google Apps Script」を選択します。
メニューになければ「アプリの追加」から検索し追加してください。

Google Apps Scriptの作成

「無題のプロジェクト」をクリックし、プロジェクトの名前を設定します。
名前は何でもOKですが、ここでは仮に「ChatworkToSlack」としましょう。

Google Apps Scriptの名前設定

「SlackApp」ライブラリの追加

外部サービスからSlackへメッセージを通知するには、SlackAPIを利用します。
今回は「SlackApp」のライブラリを利用しメッセージを送信しましょう。
https://github.com/soundTricker/SlackApp

ライブラリとは
Goole Apps Scriptのソースコードを共有・再利用できる仕組みです。
提出されているライブラリを利用することで、自分で面倒な開発をすることなく
開発済みの機能を利用することができます。

リソースメニューから「ライブラリ」を選択します。
Google Apps Scriptのライブラリ表示

「Add a library」に「M3W5Ut3Q39AaIwLquryEPMwV62A3znfOO」を入力して「追加」します。
バージョンは最新(現時点では22)を選択し、保存します。

SlackAppの登録

これでSlackにメッセージ送信する準備が出来ました。

Scriptの設定

以下のソースコードを貼り付けます。

ソースコードの以下の箇所を変更

  • const SLACK_TOKEN = 'xoxb-1217668675873-.....';
    Slackアプリのトークンを設定します
  • const CHANNEL_NAME = '#チャットワーク通知';
    連携するSlackのチャンネル名を設定します
  • const ACCOUNTS = {'3784xxxx':'チャットちゃん', '3784xxxx':'通知くん'};
    チャットワークのグループに参加している人のIDとSlackに表示した名前の紐づけをします

※Slackアプリの設定をしていない場合は、こちらの記事を参考にアプリの作成を行ってください。
【Slack】無料版でも簡単に作れるSlackアプリで通知Botを作る方法
 

アプリケーションの公開

入力したソースコードに外部からアクセスできるようにアプリケーションを公開します。
公開を行うと発行されるURLから【 doPost(e) 】メソッドにPOSTアクセスが出来るようになります。

「公開」メニューの「ウェブアプリケーションとして導入」を選択します。

Google Apps Scriptの公開

内容を設定し「Deploy」をクリックします。

Google Apps Scriptの公開設定

  • Project version:メモを入力(なんでもOK)
  • Execute the app as:「Me(自分のアカウント)」を選択
  • Who has access to the app:「Anyone,even anonymous」を選択

認証確認がいくつか出てくるので、許可しながら画面を進めます。

Google Apps Scriptの公開承認

途中で警告が出た場合は、詳細を表示してアプリに移動します。
安全ではないと出ますが、自分が設定したアプリのため問題無しです。

Google Apps Scriptの公開承認

認証が完了すると、URLが発行されます。
このURLでGoogle Apps Scriptのプログラムにアクセスができます。
この後の手順でチャットワークのWebhookに登録にしますので、コピーしておいてください

Google Apps Scriptの公開URL発行
 

Slackの絵文字登録(割愛してもOK)

Slackにチャットワークの絵文字を登録します。
送信されたメッセージがチャットワークからと分かりやすくするために
Slackの絵文字にチャットワークアイコンを登録します。

チャットワークのロゴマークは公式サイトからダウンロードができます。
https://go.chatwork.com/ja/download/cw_logo.html
サンプルではロゴマークの「cw_logomark_color.png」を使いました。

Slackの絵文字登録

絵文字の名前は「chatwork」です。
Google Apps Scriptの設定も「chatwork」で呼出しています。

Slackの絵文字画像アップロード

 

チャットワーク設定

続いてチャットワークの設定です。
チャットワークの「Webhook機能」を利用し、Google Apps Script に設定したプログラムから
Slackにメッセージを連携します。

Chatwork Webhookとは
チャットルームにメッセージ送信や、編集などがあったと同時に、
指定したURLに通知を行うことが出来る機能です。
今回はメッセージが投稿されたタイミングで、Google Apps Scriptで
設定したURLにチャットワークの投稿内容を送信します。

チャットワークWebhookにGoogle Apps ScriptのURLを設定

自分のアイコンから、「サービス連携」メニューを選択します。

チャットワーク投稿

各項目を設定して「作成」します。

チャットワークのwebhook設定

  • Webhook名:任意の名前でOK
  • Webhook URL:Google Apps Scriptの公開で発行されたURL
  • イベント:ルームイベントを選択
  • イベント:メッセージ作成、更新は通知したい内容を選択
  • ルームID:通知させたいチャットルームのID(IDは入力画面下の説明参照)

以上で設定が完了です。
チャットワークのメッセージがSlackにも連携されるようになります。

 

チャットワークからSlackに通知

今回のサンプルでは、チャットワークの「slack通知」ルームのメッセージを
Slackの「チャットワーク通知」チャンネルに連携されます。
やってみましょう。

通知くんがチャットワーク投稿しました。

チャットワークの発言

Slackに連携することができました。

チャットワークからSlackに連携

ここで表示されている名前はGoogle Apps Scriptに設定したこの部分で変換されています。
const ACCOUNTS = {'3784xxxx':'チャットちゃん', '3784xxxx':'通知くん'};

チャットちゃんとのやりとりも全てSlackに通知されましたね。

チャットワークで複数発言

チャットワークからSlackに複数連携

うまく設定できましたか?
これでチャットワークとSlack両方監視しておかなくても、Slackだけで見逃しが無くなりますね。
効率化を図りたい方は、是非お試しください。
 

ウィズテクノロジーで一緒に働きませんか?
分野を限定せず幅広い事業を展開。新しい技術の導入にも積極的に取り組んでおり、チャレンジや成長する機会が沢山。
あなたの経験・知識を活かしながら一緒にIT業界を盛り上げて行きましょう!
採用情報詳細はコチラ