見出し画像

GASを使ったLINE Messaging APIでのユーザーID取得方法

「LINEボットを開発していて、特定のユーザーにメッセージを送信したい」そんなとき必要になるのが、LINE Messaging APIを使ったユーザーIDの取得です。

ユーザーIDとは?

ユーザーIDは、いわば「LINEプラットフォーム上の会員番号」のようなものです。具体的には、"U"で始まり、その後に16進数の数字とアルファベットが32文字続く形式で表されます。これは、ユーザーの表示名やLINE IDとは全く異なる、プログラムによる個別メッセージ配信のために特別に用意された識別子です。

LINE Developersの公式ドキュメントには、ユーザーIDの取得方法が記載されていますが、初めて読むとその内容はなかなか理解しづらいものです。私も最初はこの部分で苦戦し、自分のユーザーIDを知るのに大変苦労しました。

GASを使ったユーザーIDの取得方法

そこで今回は、私が試行錯誤の末にたどり着いた「Google Apps Script(GAS)を使ったユーザーIDの取得方法」をご紹介します。もしかしたら、もっと簡単な方法があるかもしれませんが、同じような悩みを抱えている方々の参考になればと思います。

Webhook URLの活用

この方法では、Webhook URLを設定することで、LINEプラットフォームからGASにデータを送信できるようにします。ユーザーがボットと友だちになったり、メッセージを送信したりする際に、様々なイベントが発生します。こうしたイベントが起こるたびに、Webhook URLを通じてGASにデータが送信されます。このデータにはユーザーIDが含まれているため、GASを利用して簡単に取得することができるのです。

この手順を知っておくことで、LINEボットをよりパーソナライズされた形で運用できるようになります。

GASを使ったユーザーIDの取得手順

1.LINE Developersコンソールでの設定

LINE Developersコンソール(https://developers.line.biz/console/)にアクセスし、新しいプロジェクトを作成します。
・Messaging APIを有効にし、チャネルアクセストークンを取得します。


2.Google Apps Scriptの準備

・Google Apps Script (GAS) を開き、新しいプロジェクトを作成します。
・以下のようなスクリプトを作成し、LINEからのWebhookイベントを処理します。
"ここにはチャネルアクセストークンを書きます"のところに、1で取得したチャネルアクセストークンを書きます。

function doPost(e) {
  const token = "ここにはチャネルアクセストークンを書きます";
  
  try {
    const eventData = JSON.parse(e.postData.contents).events[0];
    const userId = eventData.source.userId;
    const replyMessage = `あなたのUser_IDは${userId}です。`;
    
    const payload = {
      'replyToken': eventData.replyToken,
      'messages': [{
        'type': 'text',
        'text': replyMessage
      }]
    };
    
    UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
      'payload': JSON.stringify(payload),
      'method': 'POST',
      'headers': {'Authorization': 'Bearer ' + token},
      'contentType': 'application/json'
    });
    
  } catch(error) {
    Logger.log('エラー: ' + error);
  }
}


3.GASプロジェクトのデプロイ

・スクリプトを保存し、ウェブアプリケーションとしてデプロイします。



・デプロイ時に、Webhook URLを取得し、LINE DevelopersコンソールのWebhook設定に追加します。

  1. テストと確認

    • LINEアプリでBotを友だち追加し、ボットになんでもいいので話しかけてみましょう。するとあなたのユーザーIDを返してくれます。


こんなメッセージが届きます。
"U"で始まり、その後に16進数の数字とアルファベットが32文字続きます。



このようにして、GASを用いてLINE Messaging APIを活用し、ユーザーIDを取得することができます。これにより、よりパーソナライズされたユーザー体験を提供することが可能になります。



ーーーーーーーーーー
私の書いた本が出版されました!
\Twitterからうまれた/
ちょっと理系なおうち遊びの本

Amazon 売れ筋ランキング  
幼児教育 カテゴリー  有料Top100
ベストセラー1位✨ になりました!
ありがとうございます!
KindleUnlimited, ペーパーバックでも読めます!





いいなと思ったら応援しよう!