Slack チャンネルIDの探し方
sanane SANANEBLOG
今回はLINEのグループIDを取得する手順を紹介します。
LINEを用いたBotの作成や開発において、グループIDの取得が必要になる場合があります。
LINE公式アカウントのMessaging APIは、デフォルトでは1対1のトークにしか通知できません。グループ内に回答を流し込みたい場合は、対象グループのIDを指定してプッシュ配信する必要があります。
LINEグループIDを取得できるようになると、下記記事のようにGoogleフォームの回答を受け取ったりすることができるようになります。
今回はスプレッドシートと紐づく形でGASを作成していますが、Apps Script単体で作成しても問題ありません。
const ACCESS_TOKEN = 'YOUR_ACCESS_TOKEN';
の YOUR_ACCESS_TOKEN
部分を、' '
はそのままです)// 各自のアクセストークンを設定してください
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");
}
LINEグループに通知を送信するためにはLINEグループの「ID」が必要となります。
この手順では、グループIDを取得するためにGASを一時的にウェブアプリとして公開し、LINEからグループIDを受け取れるようにします。
表示されるWebhook用の[WebアプリURL]をコピーしてください。
LINEを開き、任意のグループに作成した公式アカウントを招待します。
グループに対し、任意のメッセージを送信します。送信するとグループIDが返信されます。
グループIDを取得するために一時的に作成したWebアプリはセキュリティのため削除しておきます。
画面右上の「デプロイを管理」をクリックします。
[デプロイメントをアーカイブ]のアイコンをクリックします。
[アーカイブ]をクリックします。