勉強したことのメモ

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

  関連記事

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

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

GASでNintendo Storeをチェックし指定したソフトが〇円以下の際に通知する方法

Google Apps Scriptを利用してNintendo Storeをスク ...

GASで「小説家になろう」サイトの更新通知をLINEに送る方法

Google Apps Scriptの勉強として「小説家になろう」サイトの特定小 ...

GASとGmailを連携させて受信メール検索及びメール送信

Google Apps ScriptとGmailを連携させてみたい。「未読かつ特 ...

GASで祝日一覧(年月日と祝日名)データをJSON出力するAPIを作成

PHPのシステム案件で祝日を取得し、処理を行う箇所があった。Googleカレンダ ...