当サイトはアフィリエイト広告による収入を得ています

【LINE・GAS】グループトークにメッセージを送信するための苦行

2025年6月12日

グループトークでGASを用いてメッセージを送信する際、以下の2つの値が必要となります。

・メッセージを送信したいLINEのグループID
・チャネルアクセストークン(長期)

前回の記事で、"チャネルアクセストークン(長期)"は取得できるようになりました。

今回はこのうちの"メッセージを送信したいLINEのグループID"を取得したいと思います。
ただ、その方法を私は知りません。
そこでChatGPTに聞いてみると、Webhookイベントを受信するとグループLINEのIDが分かるとのことです。

おーくまん
おーくまん

"おーくまん"です。「忖度なし」で、ガジェットレビューをしています。
お問い合わせプライバシーポリシー

Webhookとは

LINEログインのAPIの仕組み

突然webhookと言われても分かりません。もう一度ChatGPTに聞いてみると、「メッセージ送信などのイベントがあったときに、自分のサーバ宛に通知をする仕組み」とのことです。そして、この通知の中にLINEのグループIDが入っているそうです。

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

さて、このwebhookイベントですが主に以下のイベントの時にLINEのグループIDを取得できるようです。

イベントtype説明
参加イベントjoinLINE公式アカウントが、グループトークに参加した時に起きるイベント。
退出イベントleaveLINE公式アカウントがグループトークから退出した時に起きるイベント。
メッセージ送信イベントmessageグループトークでユーザがメッセージを送信した時に起きるイベント。

LINEのグループIDを取得するのは最初の一回だけでよいので、参加イベントの時に取得するようにします。

参加イベントの中身

参加イベントの中身

【実装】コードを書く

準備をする

①自分のGoogleドライブを開く
②任意の場所にスプレッドシートを作成する

Googleドライブの画像

③"Extenisions"(拡張機能)→"Apps Script"の順にクリックする

スプレッドシートの画像

コードを書く

以下のコードを張り付けて、スプレッドシートのIDを記述してください。

スプレッドシートのIDは、スプレッドシートのURLの'd/'と'/edit'の間にある文字列です

スプレッドシートのIDを取得
// スプレッドシートID
const SPREADSHEET_ID = 'スプレッドシートID';

function doPost(e) {
  try {
    // JSONオブジェクトに変換
    var events = JSON.parse(e.postData.contents).events;
  } catch (errror) {
    return ContentService.createTextOutput(JSON.stringify({ content: 'invalid JSON', message: err.message })).setMimeType(ContentService.MimeType.JSON);
  }

  // events配列のチェック
  if (!events || events.length === 0) {
    return ContentService.createTextOutput(JSON.stringify({ 'content': 'no events' })).setMimeType(ContentService.MimeType.JSON);
  }

  // イベントデータを取得
  var event = events[0];
  Logger.log("event.type: " + event.type);

  // 参加イベントでかつグループトークであるとき
  if (event.type == 'join' && event.source.type == 'group') {
    // グループIDを取得
    var groupId = event.source.groupId;
    Logger.log("受信したグループ ID: " + groupId);

    // スプレッドシートを取得
    const sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getActiveSheet();

    const lastRow = sheet.getLastRow();
    if (lastRow === 0) {
      // スプレッドシートが空の場合、初回の記録
      sheet.appendRow(["Date", "GroupID"]);  // ヘッダー行を追加
      sheet.appendRow([new Date(), groupId]);  // 初回データを追加
    } else {
      // スプレッドシート内の全グループIDを取得して重複確認
      const data = sheet.getRange(2, 2, lastRow - 1).getValues().flat();
      if (data.includes(groupId)) {
        return ContentService.createTextOutput(JSON.stringify({ 'content': 'already recorded' })).setMimeType(ContentService.MimeType.JSON);
      }

      // 新しいグループ ID を記録
      sheet.appendRow([new Date(), groupId]);
    }
  }

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

デプロイする

①「Deploy」→「New deployment」の順にクリック

デプロイ画面

②設定アイコンを押し、「Web app」を押す

デプロイ画面

②アクセス権を"Anyont"(全員)にして、「Deploy」を押す

デプロイ画面

③アクセス権の承認をする

▼詳細

A.「Authorize access」を押す

デプロイ画面

B.自分のアカウントを選択

自分のアカウントを選択

C.「Advanced」を押す

app画面

D.「Go to Unlitled project(unsafe)」を押す

app画面

E. 「Allow」を押す

アクセス権設定画面

④Web app URLをコピーする

Web app URL画面

設定をする

Webhookの設定

LINE Developersにアクセスする
②作成した公式LINEアカウント名の個所を選択する

チャネル選択画面

③"Messaging API設定"を押す

チャネル管理画面

④先ほどコピーしたWebHookのURLを張り付けて、「更新」を押す

messaging API設定画面

⑤「Webhookの利用」をONにする

messaging API設定画面

公式LINEアカウントの設定

LINE Official Account Managerにログインする
②「設定」を押す

LINE Official Account Manager管理画面

③"アカウント設定"から「グループ・複数人トークへの参加を許可する」を押す

LINE Official Account Manager管理画面

④"応答設定"から「応答メッセージ」の設定をOFFにする

LINE Official Account Manager管理画面

⑤"Messaging API"でMessaging APIが有効になっているか確認する。
 以下の画面になっていればOK

LINE Official Account Manager管理画面

グループIDを取得する

グループトークに公式アカウントを招待したのち、作成したスプレッドシートを確認してください。すると、2行目にグループIDが記述されています。これが、さきほど公式アカウントを追加したグループトークのグループIDです。

スプレッドシートの画像

【まとめ】やることが多すぎ

グループトークにメッセージを送るための準備でこれだけの作業数をする必要があるのはなかなかの苦行です。
ただ、準備は終わったので次はいよいよグループトークでメッセージを送信していきます。

おすすめ記事

Galaxy S26 Ultra

スマホ

2026/3/16

【Galaxy S26 Ultra レビュー】さらに日常向けに最適化された最高峰スマホ

僕は毎年Samsungの新作発表会を楽しみにしてたんだけど、ここ数年は新しいスマホが発表されても「どうせAIでしょ」みたいな感じでわくわくすることはなくなってきてた。 ただ、今年は一味違って、AI以外に「プライバシーディスプレイ」なる世界初の機能が搭載されて久しぶりにわくわくしました。1年前にGalaxy S25Ultraを買ったばかりで、ふつうに考えれば買い替える必要はまったくないんだけど、思わず買ってしまったからレビューしていきます。 【Galaxy S26 Ultraの特徴】オールインワンの一言に尽 ...

デスク環境

2026/3/1

【デスク環境が変わる】Ankerの巻き取り式充電ステーションレビュー【迷わず買え】

発売当初はすぐに売り切れた、巻き取り式ケーブル搭載の充電ステーションAnker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-Cケーブル)。 最初は「そんなにいいの?」と思っていたけど、使ってみるとマジでいい。デスク環境が変わるから、ちょっとでも気になっているなら迷わず買ってほしいです。 とはいえ、急に「買え」と言われても「なんで?」となるから実際の使用感を解説していきます。 Anker Nano Charging Station 7-in-1 10 ...

ブログ 雑談

2026/1/22

僕の経歴とブログを始めた経緯

このブログを運営している"なんグラマ"といいます。「なんちゃってプログラマ」の略です。 本業は接客業をしていて、日々お客様と接しています。接客業も好きでこの仕事をしているのですが、他にもいくつか好きなこと(モノ)があります。 それは、 プログラミング ガジェット スイーツ です。 当ブログでは、この3つのジャンルを中心に投稿しています。この投稿では、自己紹介として私の人生の一部を話す中で、ブログを始めた理由も話していきます。 【幼稚園~中学時代】将来の夢は列車の運転士だった 幼稚園くらいの頃から列車が好き ...

オーディオ

2026/1/17

【Soundcore Liberty 5レビュー】2万円以下のコスパ最強イヤホン

2万円以下のコスパイヤホンといえば、これまではAnkerのSoundcore Liberty 4でした。1.5万円という価格ながら日常使いでストレスの少ないまさに"最強"のイヤホンです。 そんなSoundcore Liberty 4に新モデル、Soundcore Liberty 5が登場しました。しかも価格は据え置きで。 実際に使ってみて思ったのは「さすがAnker。」で、性能を向上させつつも無駄を省いていました。それによって前作と同じ1.5万円を維持したのかと思うと感心します。今回はそんなSoundco ...

スマートウォッチ

2026/3/1

【Google Pixel Watch 4レビュー】ふだん使いに最適。健康管理もOKなハイエンドコスパモデル。

この前Galaxy Watch8 Classicを購入したばかりなのに、Google Pixel Watch 4という非常に興味深いスマートウォッチが発売されてしまいました。なんで興味深いかというと、価格は5万円ながら機能がもりもりでコンパクトなスマートウォッチだから(注:5万円は安くない)。 「これは試してみるしかない!」ということで、今回は41mmのサイズを購入して実際に使用してみたレビューをしていきます。 Google Pixel Watch 4のスペック Google Pixel Watch 4の ...

SOUNDPEATS Air5 Pro+

オーディオ

2026/3/3

【SOUNDPEATS Air5 Pro+レビュー】音質とノイキャンに全振りしたコスパイヤホン

「SOUNDPEATS Air5 Pro+の音質とコスパがいい。」そんなSNS投稿を見たときに1度はスルーしたんだけど、結局買ってしまった。なぜならたくさんの人がおすすめしてて、何度も僕のSNSに出てくるから。 これ以上イヤホンが必要ないことは分かっているけど、何度も表示されると気になってしょうがなくなってしまったんです。実際に使ってみると、たしかに金額以上の音質があってコスパは良さそうだったから僕も紹介します。 【結論】音質とノイキャンとコスパを求めるならこのイヤホン まず結論は「音質とノイキャン、そし ...

  • この記事を書いた人
アイコン

おーくまん

福岡在住の24歳。ガジェット好きで、日々の暮らしをアップデートするための情報をお届けします。ときどきプログラムも投稿します。

この記事もおすすめ

1

発売当初はすぐに売り切れた、巻き取り式ケーブル搭載の充電ステーションAnker Nano Charging Station (7-in-1, 100W, 巻取り式 USB-Cケーブル)。 最 ...

Galaxy Watch8 Classic 2

僕はこれまでGalaxy Watch4 Classicを4年使用していています。ただ、さすがに4年も経つとバッテリーの減りが早くなったり、動作がもっさりしてきたりと不満を感じるようになってきました。そ ...

SOUNDPEATS Air5 Pro+ 3

「SOUNDPEATS Air5 Pro+の音質とコスパがいい。」そんなSNS投稿を見たときに1度はスルーしたんだけど、結局買ってしまった。なぜならたくさんの人がおすすめしてて、何度も僕のSNSに出て ...

-プログラム
-, ,