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 Apps Scriptの障害時はIssueTrackerを見てみる - Incidents for Apps Script are reported on Issue Tracker

IssueTracker > Apps Script issues https://issuetracker.google.com/savedsearches/566234 Google Apps Scriptの障害時は IssueTracker に課題が上がっていることが...