勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

GASとChatworkを連携してメッセージを送信する方法

  Google Apps Script Google

Google Apps Scriptの勉強として「Chatwork」と連携させてみたい。具体的にはGAS上のスクリプトからマイチャットや指定したルームに何らかのメッセージを送信してみたかった。調べてみるとライブラリで簡単に対応できる模様。以下に対応方法をメモ。

 

Chatwork側の作業

まずAPIトークンを発行する必要がある。Chatworkにログインし、「ページ上部メニュー内の一番右にある人物アイコン」→「サービス連携」→「左側メニュー内のAPI Token」→「パスワードを入力」→「表示ボタンをクリック」と進むとトークンが発行されるのでメモしておく。

尚、APIのリファレンスは以下になる。

https://developer.chatwork.com/ja/

 

GAS側の作業

ライブラリの追加

Chatwork APIと簡単に連携が取られるライブラリがあるので以下スクリプトIDから追加する。

1nf253qsOnZ-RcdcFu1Y2v4pGwTuuDxN5EbuvKEZprBWg764tjwA5fLav

マイチャットに送信する場合

function sendMessage(){
	//APIトークンを指定する
	const client = ChatWorkClient.factory({token: 'xxxxxxxxxx'});

	//メッセージ内容
	const message = "テストです。\n改行\nテストです。";

	//マイチャットにメッセージを送る
	client.sendMessageToMyChat(message);
}

指定のルームに送信する場合

function sendMessage(){
	//APIトークンを指定する
	const client = ChatWorkClient.factory({token: 'xxxxxxxxxx'});

	//メッセージ内容
	const message = "テストです。\n改行\nテストです。";

	//ルームID
	const room_id = 'xxxxxxxxxx';

	//メッセージを送る
	client.sendMessage(
		{
			room_id: room_id,
			body: message
		}
	);
}

Chatworkで何らかのルームを開くと「https://www.chatwork.com/#!rid123456789」みたいなURLになるが「123456789」の部分がルームIDになる。

注意点

メッセージはAPIトークンを発行したアカウントから送信される。もちろん送信者名もそのアカウントで設定されている名前になる。

また、Chatwork APIへはライブラリからUrlFetchAppでリクエストしているので利用制限に注意。ライブラリのソースは以下を参照。

https://github.com/cw-shibuya/chatwork-client-gas/blob/master/client.js

 

参考サイト

https://www.indetail.co.jp/blog/171222/

https://tonari-it.com/gas-chatwork-send-message-mychat/

 - Google Apps Script Google

  関連記事

GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法
GoogleスプレッドシートとPHPを連携させデータを取得・追記する方法

GoogleスプレッドシートとPHPプログラムを連携させたいという案件をたまに見 ...

GASで特定サイトをスクレイピングし、画像をGoogleドライブに保存
GASで特定サイトをスクレイピングし、画像をGoogleドライブに保存

Google Apps Scriptで特定のサイトにスクレイピングし、画像が掲載 ...

GASのプログラム実行時間計測方法と各種制限についてのメモ
GASのプログラム実行時間計測方法と各種制限についてのメモ

PHP等でプログラムを組んでいると、あまり実行時間について気にすることはなかった ...

GASとGoogleカレンダを連携し暦通りではない店休日を取得する方法
GASとGoogleカレンダを連携し暦通りではない店休日を取得する方法

小売店等のサイトで営業日カレンダーみたいなものを表示させる際に今まではPHPで管 ...

GASとAdSense Management APIを使って前日分の売り上げをメール通知する方法
GASとAdSense Management APIを使って前日分の売り上げをメール通知する方法

Googleアドセンスの売り上げをチェックする際、いつもはアドセンスの管理画面に ...