質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1372閲覧

LINE messaging api をgasで動かしているがuserIdを取得できない

sakanamotoki

総合スコア12

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/06/19 02:06

編集2020/06/19 02:14

初めまして、現在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
公式リファレンス

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

[ { userId: 'Ua6ea14161d73e549e9226ec688c0ebf4', type: 'user' } ]なら、event.joined.membersは配列なのでは。

javascript

1var userId = event.joined.members[0].userId;

投稿2020/06/19 05:52

draq

総合スコア2577

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakanamotoki

2020/06/19 10:18

ありがとうございます!解決しました! 無知ですみません!
sakanamotoki

2020/06/19 10:30

function getUserProfile(userId)の関数でdisplaynameが取得できないのはなぜだかわかりますでしょうか?小文字が大文字になっていた部分は修正しました。 以下のようなエラーが出てました。 Exception: https://api.line.me のリクエストに失敗しました(エラー: 404)。サーバー応答の一部: {"message":"Not found"}(応答の全文を見るには muteHttpExceptions オプションを使用してください) at getUserProfile(コード:31:35) at doPost(コード:26:18)
draq

2020/06/19 10:35

404ならAPIのURLが間違っているのでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問