業務効率化
PR

LINEのグループIDを取得する方法

sanane
記事内に商品プロモーションを含む場合があります

はじめに

今回はLINEのグループIDを取得する手順を紹介します。

LINEを用いたBotの作成や開発において、グループIDの取得が必要になる場合があります。

LINE公式アカウントのMessaging APIは、デフォルトでは1対1のトークにしか通知できません。グループ内に回答を流し込みたい場合は、対象グループのIDを指定してプッシュ配信する必要があります。

LINEグループIDを取得できるようになると、下記記事のようにGoogleフォームの回答を受け取ったりすることができるようになります。

あわせて読みたい
Googleフォームの回答をLINEグループで受け取る方法【LINE Messaging API】
Googleフォームの回答をLINEグループで受け取る方法【LINE Messaging API】

本記事の流れ

  1. LINE公式アカウントの作成、トークンの発行
  2. GAS(Google Apps Script)でグループIDを取得するためのWebアプリの作成
  3. LINE 開発者ポータル上で②で作成したWebアプリのURLの登録
  4. LINEグループに公式アカウントを招待
  5. グループIDの確認

事前に準備するもの

  1. Googleアカウント
  2. LINE公式アカウント
    (作成方法は本記事の手順で説明します)

導入方法

ステップ1:LINE公式アカウントの設定(Messaging APIの準備)

LINE公式アカウントの作成
  1. LINE Official Account Managerにアクセスして自身のアカウントでログインします。個人の利用であれば「LINEアカウントでログイン」で問題ありません。
  2. 「アカウントタブ」より「作成」をクリックし新規アカウントを作成します。
    • アカウント名:お好み(例:「通知Bot」など)
    • メールアドレス:任意
    • 業種:個人
    • 運用目的:その他
    • 主な使い方:メッセージ配信用
  3. 各種同意画面に従い、「同意」を選択。
  4. 作成完了後、LINE公式アカウントが使用可能になります。
LINE公式アカウントでMessaging APIを有効にする
  1. LINE Official Account Managerで作成したアカウントにログインします。
  2. 画面右上の「設定」をクリック。
  3. 左メニューの「Messaging API」を選択。
  4. Messaging APIを利用する」をクリック
  5. プロバイダーを選択 → 「同意する」。
  6. プライバシーポリシー、利用規約は空欄のまま「OK」をクリック。
  7. 「OK」をクリックし、[Channel ID]と[Channel Secret]が表示されていることを確認します。
LINE Developersでのアクセストークン取得
  1. LINE Developersにアクセスし、「コンソールにログイン」をクリック。前ステップで選択したプロバイダーを選択します。
  2. 前ステップで作成したアカウントを選択します。
  3. 上部バーから「Messaging API設定」をクリック。
  4. ページ下部の「チャンネルアクセストークン」を発行してコピーします。(後で使用します)。

ステップ2:Google Apps Scriptで通知スクリプトを作成する

SANANE
SANANE

今回はスプレッドシートと紐づく形でGASを作成していますが、Apps Script単体で作成しても問題ありません。

スクリプトの準備
  1. Googleスプレッドシートを開き、新規でスプレッドシートを作成します。
  2. 上部メニュー「拡張機能」 → 「Apps Script」をクリック。新しいタブでGoogle Apps Scriptのエディタが開きます。
スクリプトの編集
  1. 以下のコードをコピー&ペーストしてください。もともと記載してあるmyfunctions{}は削除してください。
  2. コード2行目のconst ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';YOUR_ACCESS_TOKEN 部分を、
    前ステップの最後でコピーしたチャンネルアクセストークンに置き換えます。
    (シングルクォーテーション ' ' はそのままです)
  3. 上部メニューの「保存」ボタンをクリックして、プロジェクトを保存します。
// 各自のアクセストークンを設定してください
const ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';

/**
* LINEのWebhook受信用関数
* ユーザがグループ内でメッセージを送信すると、グループIDを取得し、そのIDを返信する。
* エラー発生時はエラーログを出力する。
*/
function doPost(e) {
 try {
   // 受信したリクエスト全体をログ出力
   Logger.log("Received event: " + JSON.stringify(e));
  
   // POSTデータの内容をパース
   var json = JSON.parse(e.postData.contents);
   Logger.log("Parsed JSON: " + JSON.stringify(json));
  
   if (json.events && json.events.length > 0) {
     var event = json.events[0];
     var source = event.source;
    
     // グループからのメッセージの場合、groupIdが含まれる
     if (source.type === 'group' && source.groupId) {
       var groupId = source.groupId;
       Logger.log('取得したグループID: ' + groupId);
      
       // ユーザへの返信メッセージを作成
       var replyToken = event.replyToken;
       var replyMessage = 'あなたのグループIDは: ' + groupId;
      
       // 返信用のペイロードを作成
       var url = 'https://api.line.me/v2/bot/message/reply';
       var payload = JSON.stringify({
         "replyToken": replyToken,
         "messages": [
           {
             "type": "text",
             "text": replyMessage
           }
         ]
       });
       Logger.log("Sending reply payload: " + payload);
      
       // オプション設定
       var options = {
         "method": "post",
         "contentType": "application/json",
         "headers": {
           "Authorization": "Bearer " + ACCESS_TOKEN
         },
         "payload": payload
       };
      
       // LINE Messaging APIへリクエスト送信
       var response = UrlFetchApp.fetch(url, options);
       Logger.log("Response: " + response.getContentText());
     } else {
       Logger.log("イベントはグループからのものではないか、groupIdが含まれていません。");
     }
   } else {
     Logger.log("受信イベントがありません。");
   }
 } catch (error) {
   // エラー発生時にログ出力
   Logger.log("doPost内でエラー発生: " + error);
   return ContentService.createTextOutput("Error: " + error);
 }
  return ContentService.createTextOutput("OK");
}

ステップ3:グループID取得用ウェブアプリの作成

SANANE
SANANE

LINEグループに通知を送信するためにはLINEグループの「ID」が必要となります。

この手順では、グループIDを取得するためにGASを一時的にウェブアプリとして公開し、LINEからグループIDを受け取れるようにします。

GASのデプロイ
  1. 右上[デプロイ]>[新しいデプロイ]を選択します。
  2. 表示される画面上で、歯車マークをクリックし、[ウェブアプリ]を選択します。
  3. [アクセスできるユーザー]を全員に変更し、[デプロイ]をクリックします。
  4. [アクセスを承認]をクリックします。
アクセス権の承認
  1. ログインしているGoogleアカウントをクリックします。
  2. [Advanced]をクリックします。
  3. [Go to 無題のプロジェクト(unsafe)]をクリックします。
  4. [Allow]をクリックします。
Webアプリ用URLをコピー

表示されるWebhook用の[WebアプリURL]をコピーしてください。

ステップ4:公式アカウントのグループ追加の許可設定

LINE Developersの操作
  1. LINE Developersに移動し[コンソールにログイン]をクリックします。
  2. 作成した公式アカウントをクリックします。
  3. 上部バーより「Messaging API設定」をクリックします。
LINE公式アカウントのグループ追加許可設定
  1. [LINE公式アカウント機能]>[グループトーク・複数人トークへの参加を許可する ]の[編集]をクリックします。
  2. 別タブが開き、[グループ・複数人トークへの参加を許可する]を選択します。タブは閉じても問題ありません。
Webhook URLの入力
  1. [Webhook設定]まで移動し、[編集]をクリックします。
  2. 前項でGASでコピーしたWebhook用のURL(WebアプリURL)を貼り付け、[更新]をクリックします。
応答メッセージの編集
  1. [LINE公式アカウント機能]>[応答メッセージ]の[編集]をクリックします。
  2. 別タブが開きます。[Webhook]をオン、[応答メッセージ]は必要に応じオフにしておきます。タブは閉じても問題ありません。

ステップ5:公式アカウントのグループ追加

LINE公式アカウントのグループへの招待

LINEを開き、任意のグループに作成した公式アカウントを招待します。

グループIDの取得

グループに対し、任意のメッセージを送信します。送信するとグループIDが返信されます。

ステップ6:Webアプリの削除

SANANE
SANANE

グループIDを取得するために一時的に作成したWebアプリはセキュリティのため削除しておきます。

GAS上でのデプロイの管理

画面右上の「デプロイを管理」をクリックします。

デプロイのアーカイブ操作①

[デプロイメントをアーカイブ]のアイコンをクリックします。

デプロイのアーカイブ操作②

[アーカイブ]をクリックします。

記事URLをコピーしました