ChatWorkの投稿をGoogleスプレッドシートに転記する

gasBackEnd

GAS

スプレッドシートの準備

分かりやすく新規作成でも良いでしょう

コードを書く

ツール→スクリプトエディタでスクリプトエディタを開く

下記コードを張り付ける

function doPost(e) {
  var json = JSON.parse(e.postData.contents);
  var body = json.webhook_event.body;

  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow([body]);
}

各行の説明は割愛します。

コードを保存する

保存時にプロジェクト名をつける際はなんでもよいがスプレッドシートと同じ名前だと管理しやすいと思います。

URL取得(デプロイする)

チャットワークからのpost送信先を発行する

  1. ファイル→版を管理
    適当な文字を入力して「save new version」を押下する。
  2. 公開→ウェブアプリケーションとして導入
    デプロイするバージョン指定:さっき指定した版でOK
    デプロイするユーザーを指定:ME:ログイン中の自分でOK
    公開レベルを指定:「Anyone even Anonymous」にしました。

デプロイボタンを押すと認証へと進む
許可を確認ボタンを押下する
アカウントの選択
このとき安全ではないうんたらかんたら言われるので
詳細→「自分のプロジェクト(安全ではないページ)」と進む
下のほうに許可ボタンがあるので押す。
このあたりよく分からなければググってみてください。すぐいっぱい出てきます。(他人任せ)

Current web app URL:このURLを控えておく※1

ChatWork

ルームを作成する

新しくルームを作成しましょう、既存のルームでもOK
ルームIDを控えておきましょう。

※ルームチャットのID
URLのrid。数字だけ
クライアントソフト使用しているなどURLが分からない場合はチャット情報の編集を開き下のほうに記載されている「ルームID」

チャットワークAPIの設定

API設定→Webhookで進む

新規作成(編集)
各項目設定

カラム入力
Webhook名わかればなんでもいい
WebhookURL※1
イベントルームイベント
ルームID投稿を反映したいルームIDを入力する

メッセージ作成かメッセージ更新か選択できるので今回はメッセージ作成を選択します。

実行

設定したルームでメッセージを投稿してください。
スプレッドシートに反映されたら成功。

おまけ

おまけとしてdoPostのデバッグコードを置いておきます。

// doPostのデバッグ用
function dummyPost() {
  var webhookEvent = {
    'webhook_event': {
      'body': 'こんにちは'
    }
  };
  var e = {
    'postData': {
      'contents': JSON.stringify(webhookEvent)
    }
  };
  var res = doPost(e);
  Logger.log(res);
}

コメント

タイトルとURLをコピーしました