【LINE】グループID(Group ID)の取得方法|Messaging APIで 特定のグループにメッセージを送るために必要

LINE_ライン_Prograshi_ファーストビュー_アイキャッチ_kv LINE
記事内に広告が含まれていることがあります。

LINE Messaging APIで 特定のグループにメッセージを送るには、まず「グループID(Group ID)」を取得する必要があります。


グループIDの取得要件

グループIDを取得するためには以下の条件を満たしておく必要があります。

グループIDの取得要件
  • Messaging API対応の LINE公式アカウント(チャネル) を作成済み
  • チャネルアクセストークン(Channel Access Token) を取得済み
  • Messaging APIが有効化されていること


グループIDの取得方法

Webhook用のURLを取得する

ここではGASを使って、LINEのアクションがあったときに叩くWebhook用のURLを用意し、グループIDをスプシに書き込むようにします。

AppScriptを開き以下のコードを保存します。

const SPREADSHEET_ID = 'スプシID';
const SHEET_NAME = 'シート1'; //シート名

function doPost(e) {
  try {
    const json = JSON.parse(e.postData.contents);
    const ss = SpreadsheetApp.openById(SPREADSHEET_ID);
    const sheet = ss.getSheetByName(SHEET_NAME);

    if (!sheet) {
      throw new Error(`シート "${SHEET_NAME}" が見つかりません。`);
    }

    if (!json.events || json.events.length === 0) {
      sheet.appendRow([new Date(), "No events"]);
      return ContentService
        .createTextOutput(JSON.stringify({ status: 'no events' }))
        .setMimeType(ContentService.MimeType.JSON);
    }

    json.events.forEach(event => {
      const type = event.type || "";
      const sourceType = event.source?.type || "";
      const groupId = event.source?.groupId || "";
      const userId = event.source?.userId || "";
      const messageType = event.message?.type || "";
      const messageText = event.message?.text || "";
      const timestamp = new Date(event.timestamp);

      sheet.appendRow([
        timestamp,
        sourceType,
        groupId,
        userId,
        messageType,
        messageText
      ]);
    });

    return ContentService
      .createTextOutput(JSON.stringify({ status: 'ok' }))
      .setMimeType(ContentService.MimeType.JSON);

  } catch (err) {
    const sheet = (() => {
      try { return SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME); }
      catch (_) { return null; }
    })();
    if (sheet) {
      sheet.appendRow([new Date(), "Error", err.message]);
    }
    return ContentService
      .createTextOutput(JSON.stringify({ status: 'error', message: err.message }))
      .setMimeType(ContentService.MimeType.JSON);
  }
}


デプロイして、ウェブアプリURLをコピーします。

デプロイするときは以下の設定にします。

デプロイ時の設定
  • 説明LINE Webhook(任意)
  • 実行するユーザー:自分(自分のアカウント)
  • アクセスできるユーザー:「全員(匿名含む)」 ※重要※


スプシにタイトル行を追加

対象のスプシにタイトル行を追加します。

日時sourceTypegroupIduserIdmessageTypemessageText


Webhookの有効化

LINE Developersツールの「Messaging API設定」でWebhookの利用をONにし、Webhook URLに先ほどのURLを貼り付けます。

注意点

Webhook URLの「検証」をクリックするとエラーが出ますが、スプシに「日付 No events」が入力されれば正しく動作しています。


公式アカウントをグループに招待

LINEで、目的のグループを作成し、公式アカウント(Bot)を追加します。


メッセージの送信

作成したグループでなんでもいいのでメッセージを打ちます。

groupIdの列がグループIDになります。


以上で、LINEグループIDの取得は完了です。



Webhook URLを削除する

目的のgroupIdが取得できたら、登録したURLを削除します。

削除しておかないと、メッセージのやり取りがある度にスプシに追記され続けます。

タイトルとURLをコピーしました