LINEグループのIDを確認する方法【TypeScript】

LINEのMessage APIを使って、

  1. BotをグループAに招待する
  2. BotからグループAに対して「hoge」と送信したい

みたいにしようと思いました。

ですが、これをする場合、グループAのグループIDとやらを取得しないといけないらしい。

 

取得する方法はいまのところ、webhookを経由して取得するしかないっぽい。

なので、自分の場合、以下のようにしてグループIDを取得しました。

  1. LINEが公開しているこちら(line-bot-sdk-nodejs)サンプルリポジトリをcloneする
  2. /examples/echo-bot-ts/の中に移動する
  3. npm installする
  4. textEventHandler関数の中で、console.log(JSON.stringify(event))と記述する
    • グループIDを取得するため。(後述)
  5. git initして自分のGitHubリポジトリにpushする
  6. herokuのようなPass(今はもうherokuは無料ではないので自分の場合はrender.comを使った)と連携して、echo-bot-tsをデプロイする
  7. LINE Developer ConsoleからWebhookの設定をする
    • うまく設定できてる場合、「検証」をクリックすると以下のような「成功」というダイアログが表示される
  8. 取得したいLINEグループに、Botを招待する
  9. そのLINEグループ上で、なんらかのチャットを送信する
  10. render.comのログにグループIDが表示される
    • さきほど記述したconsole.log(JSON.stringify(event))がここに表示される

 

あとはこのグループIDを使って、以下のようなコードを書いて実行すれば、

import { ClientConfig, Client, TextMessage } from "@line/bot-sdk";
import dotenv from "dotenv";
dotenv.config();
const clientConfig: ClientConfig = {
  channelAccessToken: process.env.CHANNEL_ACCESS_TOKEN || "",
  channelSecret: process.env.CHANNEL_SECRET,
};

const GROUP_ID = "ここにグループID";
async function sendMessage() {
  const client = new Client(clientConfig);
  const text = "hoge";
  const response: TextMessage = {
    type: "text",
    text,
  };
  await client.pushMessage(GROUP_ID, response);
}

sendMessage();

 

以下のようにグループに対して送信できます。

 

おわり

その他
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

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