Apps Scriptリファレンス: Apps Script Reference |障害・課題追跡: IssueTracker |Google Workspace: Status Dashboard - Summary

2018年11月4日日曜日

LINE BOTでuserId, groupId, roomIdを取得したい

LINE BOTの作り方から知りたい場合は
以下の記事で簡単なBOTを作ることができます
LINE BOTの作り方



この記事ではMessaging API リファレンスの以下に記載されている
userId, groupId, roomIdを取得する方法を試してみます。

共通プロパティ
https://developers.line.me/ja/reference/messaging-api/#common-properties




コード.gs 
var CHANNEL_ACCESS_TOKEN = "TOKEN";

function doPost(e) {
  var contents = e.postData.contents;
  var obj = JSON.parse(contents)
  var events = obj["events"];
  for(var i = 0; i < events.length; i++){
    if(events[i].type == "message"){
      reply_message(events[i]);
    }
  }
}

function reply_message(e) {
  var user_id = e.source.userId;
  var group_id = e.source.groupId;
  var room_id = e.source.roomId;
  var ids = [user_id, group_id, room_id];
  var postData = {
    "replyToken" : e.replyToken,
    "messages" : [
      {
        "type" : "text",
        "text" : ids.join(",")
      }
    ]
  };
  var options = {
    "method" : "post",
    "headers" : {
      "Content-Type" : "application/json",
      "Authorization" : "Bearer " + CHANNEL_ACCESS_TOKEN
    },
    "payload" : JSON.stringify(postData)
  };
  UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options);
}


やってみる
友だち追加して直接メッセージを送るとuserIdだけが返ってきます。

グループやトークルーム(3人以上のユーザーがいるチャット)でメッセージを送るとそれぞれのIDも返ってきます。(グループの例)


関連記事


Latest post

Google Formsで記述式の質問に字数制限を設定したい

記述式の質問には「回答の検証」を設定することができます フォームの編集画面 右下の︙メニューで「回答の検証」を選択します 検証方法には「数値」「テキスト」「長さ」「正規表現」という種類があります 今回は字数制限したいので「長さ」を選びます 長さには「最大文字数」か「最小文字数」を...