勉強したことのメモ

webプログラマが勉強したことのメモ。

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

   

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

  関連記事

GoogleMapAPIで住所・経度緯度入力後にマーカーを移動させる

フォーム内に住所・経度・緯度のテキストボックスを設置し、住所を入力後にボタンを押 ...

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

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

GASの実行時間計測と各種制限について

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

GoogleMapでメインカラーを変更する方法

GoogleMapAPIを用いたMAPでカラー変更をしたかった。カラーコードの指 ...

GoogleスプレッドシートとPHPの連携

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

Google maps apiで[ReferenceError: rd is not defined]のエラー

Google maps api使っていて、ちゃんと書いているはずなのに、 Ref ...

GoogleMapAPIで現在地取得と目的地までのルート表示

GoogleMapAPIを使って現在地を取得しつつ、目的地までのルートを表示させ ...

androidでgeolocationを使うとtimeoutになる

Geolocation APIを用いて現在地をGoogleMapに表示させるとい ...

GoogleMapAPIで現在地を更新する方法

GoogleMapAPIを使って現在地を取得してその場所にマーカーを設置、その後 ...

GoogleMapAPIでヒートマップを表示する方法

GoogleMapAPIで花粉状況や雨量を可視化しやすいようなヒートマップ的なも ...