思いの外簡単そうだったのでこれをやってみる。
用意するもの
- Googleスプレッドシート
- Chatwork
ざっくり手順
- スプレッドシート作成
- スクリプトエディタでdoPostとJSONパーサを記述
- スクリプトAPI公開
- ChatworkでWebhookを作成してスクリプトのURLを指定
まずはスプレッドシートを用意
空っぽでOK。スクリプトエディタを開く。
Chatworkからデータを受け取るスクリプト
以下をコード.gsに貼り付け
function doPost(e) { try { var json = JSON.parse(e.postData.contents); var body = json.webhook_event.body; SpreadsheetApp.getActiveSheet().appendRow([body]); } catch (e) { return false; } return true; }
Googleアカウントを選択して進む
chatworkの設定
ここまでで設定完了
動作テスト
もうちょっと色々データ取りたいよね
chatworkのWebhookで送信されるリクエスト内容は以下
{ "webhook_setting_id": "12345", "webhook_event_type": "mention_to_me", "webhook_event_time": 1498028130, "webhook_event":{ "from_account_id": 123456, "to_account_id": 1484814, "room_id": 567890123, "message_id": "789012345", "body": "[To:1484814]おかずはなんですか?", "send_time": 1498028125, "update_time": 0 } }
ユーザはIDのみ、投稿日時はUNIXタイムスタンプ。
それぞれ変換が必要そうですね。
以下の記事がとても参考になりそう。そのうちやりたい。