LoginSignup
10
17

More than 3 years have passed since last update.

GASでSpreadsheetのデータをGoogle Chatに投稿

Posted at

はじめに

スプレッドシートのデータを、Google Chatに投稿したい。
チームのコミュニケーションツールとして、Google Chatを利用している。
スプレッドシートでQA表管理をしていて、未回答のものをGoogle Chatに投稿して回答を促すことに使いたい。

手順

  1. Webhook URLの取得
    やり方は以下参照
    Hangouts ChatにWebhookを使ってメッセージを通知する

  2. GASから実行
    やり方は以下参照
    Google Apps Script(GAS)からHangoutchatにメッセージを送る

  3. スプレッドシートに登録した内容を取得し、ハングアウトチャットに投稿
    上記の投稿するコードに、今まで作ってきたスプレッドシートのデータ取得のコードを組み合わせて完成。
    参考)
    【GAS】Googleフォームからの問い合わせをスプレッドシートで管理し、未回答のものだけメール送信する

コード

function sheetsToHangout() {

/* Spreadsheet */
  let sheetName = 'シート1';
  let sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
  // データ取得範囲指定
  const row = 2;
  const column = 1;  
  const LastRow = sheet.getDataRange().getLastRow();
  const LastColumn = sheet.getDataRange().getLastColumn();
  const numRows = LastRow - row + 1;
  const numColumns = LastColumn - column + 1;

  // データ取得
  let data = sheet.getRange(row, column, numRows, numColumns).getValues();


/* Hangout Chat */  
  // 投稿先指定
  const url = 'WebhookのURL'; // 手順1で取得したURLをセット

  for (i=0; i < data.length; i++) {
    // 送信内容作成
    let text = data[i][0];
    let message = {'text' : text}
    let params = {
      'method': 'POST',
      'headers' : {
        'Content-Type': 'application/json; charset=UTF-8'
      },
      'payload':JSON.stringify(message)
    };

    // 送信
    UrlFetchApp.fetch(url, params);
  }
}
10
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
17