初めまして、現在messaging apiでwebhookイベントのmemberJoinedをしたメンバーのidを取得しようとしているのですが取得できません。
var userId =event.joined.members
とすると
[ { userId: 'Ua6ea14161d73e549e9226ec688c0ebf4', type: 'user' } ]
は取得できるのですが
var userId = event.joined.members.user_id; var userId = event.joined.members.userId; var userId = event.joined.members.user_id(); var userId = event.joined.members[1];
など色々試してみましたがundefinedとなりました。
どなたかいい方法を教えていただけないでしょうか?
下にコード全文を貼っております。
あとユーザーネームの取得の仕方もこれで行けそうか確認していただけたら幸いです!
function doPost(e) { // アクセストークン var ACCESS_TOKEN = 'xxxxxxxxxxxxxxx'; // 利用しているシート var SHEET_ID = 'xxxxxxxxxxxxxx'; // プッシュURL var PUSH = "https://api.line.me/v2/bot/message/push"; //マルチキャスト通知url var MULTICAST = "https://api.line.me/v2/bot/message/multicast"; // リプライ時URL var REPLY = "https://api.line.me/v2/bot/message/reply"; // プロフィール取得URL var PROFILE = "https://api.line.me/v2/profile"; //POSTリクエストをJSONデータにパース var json = JSON.parse(e.postData.contents); //イベントタイプ取得 var event = json.events[0]; var eventType=event.type; console.log(eventType); //グループid ユーザー名 参加日を取得 if (eventType == "memberJoined"){ var groupId = event.source.groupId; var userId = event.joined.members.user_id; var joinedDate =event.timestamp; //ユーザーネームを代入 var userName = getuserProfile(userId); //profileを取得する関数 function getUserProfile(userId){ var url = 'https://api.line.me/v2/bot/profile/' + userId; var userProfile = UrlFetchApp.fetch(url,{ 'headers': { 'Authorization' : 'Bearer ' + ACCESS_TOKEN, }, }) return JSON.parse(userProfile).displayName; } } }
こちら公式のリファレンスです!
https://developers.line.biz/ja/reference/messaging-api/#member-joined-event
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/19 10:18
2020/06/19 10:30
2020/06/19 10:35