0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GAS】Googleフォームへの回答内容をChatworkに送信する

Posted at

Googleフォームに回答があった場合、Chatworkに回答内容を送信するGAS(Google Apps Script)の作り方です。

送信元のGoogleフォームにスクリプトを書く

Googleフォームの設定からスクリプトエディタを開きます。
image.png

image.png

最初のコードを消して、以下のスクリプトをコピペします。

/** ChatworkのAPIトークン */
const CHATWORK_API_TOKEN = "ChatworkのAPIトークンを設定します";
/** ChatworkのルームID */
const CHATWORK_ROOM_ID = "送信したいChatworkのルームIDを設定します";

/**
 * Googleフォームの回答があったときに実行される関数
 */
function onFormSubmit() {
  const message = buildChatworkMessage();
  sendToChatwork(message);
}

/**
 * 最新のフォーム回答からChatwork用のメッセージを作成する
 * @return {string} Chatwork用のメッセージ
 */
function buildChatworkMessage() {
  const form = FormApp.getActiveForm();
  const latestResponse = form.getResponses().pop(); // 最後の回答のみ取得
  const items = latestResponse.getItemResponses();

  let message = "[info][title]Googleフォームに回答が届きました[/title]\n";

  items.forEach((item) => {
    const response = item.getResponse();
    const responseText = Array.isArray(response)
      ? response.join(", ")
      : String(response);
    message += `${item.getItem().getTitle()}${responseText}\n`;
  });

  message += "[/info]";
  return message;
}

/**
 * Chatworkにメッセージを送信する
 *
 * @param {string} message 送信するメッセージ
 */
function sendToChatwork(message) {
  Logger.log(`Chatworkに送信するメッセージ:${message}`);

  const url = `https://api.chatwork.com/v2/rooms/${CHATWORK_ROOM_ID}/messages`;
  const options = {
    method: "POST",
    headers: { "X-ChatWorkToken": CHATWORK_API_TOKEN },
    payload: { body: message },
  };

  try {
    const response = UrlFetchApp.fetch(url, options);
    const statusCode = response.getResponseCode();
    const responseText = response.getContentText();
    Logger.log(`Chatwork APIのレスポンス:${statusCode} ${responseText}`);
  } catch (error) {
    Logger.log(`Chatwork APIの送信に失敗しました:${error}`);
  }
}

ついでにプロジェクト名やファイル名を変更しておくと後から分かりやすいです。

スクリプトの設定を行う

Chatworkに送信するため以下の項目を設定します。
image.png

  • ChatworkのAPIトークン
  • 送信するCahtworkのルームID

Chatwork APIトークンの取得

APIトークン発行ページからトークンをコピーします。
https://www.chatwork.com/service/packages/chatwork/subpackages/api/token.php?fd_bridge_id=bCtCNWlFTEFtMmwvUlVzemF1R0xoQT09LS0zajV5ZklCWUVMVDYvOCtGS283a2xRPT0%3D--3be8d1a33ca615d1b72a9a1e35d9a9578d43974e&_gl=1*1pkfbkb*_ga*MTYxMDQ5ODI3Ny4xNzI4MTY2MzE5*_ga_BL4P2F670X*MTcyODc2OTIyMi4zLjEuMTcyODc3MDgyNS42MC4wLjA.

image.png

ルームIDを取得

送信したいチャットを開いて、ルームIDを取得します。
画面右上の設定マーク>グループチャットの設定>ルームIDから確認できます。

image.png

トリガーの設定

Googleフォーム送信時にスクリプトが動くようにトリガーを設定します。

image.png

以下の設定で保存します。
イベントの種類は「フォーム送信時」に変更します。
image.png

Googleフォームを送信すると、Chatworkに内容が送信される

ここまでの設定をすると、フォームに回答があった場合にChatworkへ内容が送信されるようになります。

↓フォームに回答があると
image.png

↓Chatworkに送信される
image.png

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?