bot作成の目的
LINE messaging APIを使用してメッセージの送信を行うプロジェクトを開発する中で、グループに対してメッセージを送る場面に遭遇し、その際に必要なgroup idを取得するためにGASを使用してgroup idを返すbotを作成しました。
今回は、こちらの記事を参照して作成を行い、以下のようにgroup idを返すbotを作成しました。
使用したもの
・Google Apps Script(GAS)
・LINE messaging API
作成の流れ
1.LINE messaging APIでチャネルの作成
2.GASでgroup idを取得するプロジェクトをデプロイ
3.LINE messaging APIに上記のurlをwebhookとして登録
4.botを友達追加してテスト
実際にやってみる
1.LINE messaging APIでチャネルの作成
LINE DevelopersにLINEのアカウントでログインを行い、チャネルを作成します。今回は「groupID取得bot」としてチャネルを作成しました。
作成したチェネルをクリックし、Messaging API設定からチャネルアクセストークンを取得します。(こちらは後で使用します)
2.GASでgroup idを取得するプロジェクトをデプロイ
group idを返す処理はGASを使用しました。
使用しているgoogle driveから新規>その他>Google Apps Scriptを選択して新しいプロジェクトを作成します。
GASのプロジェクトが開けたらエディタに以下のコードを添付します。
(このコードはこちらからお借りしました)
この時に、ACCESS_TOKEN
は先ほどLINE messaing API設定にて取得したチャネルアクセストークン
です。
// LINE developers記載のアクセストークン
var ACCESS_TOKEN = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
function doPost(e) {
// ----- 送られてきた値をパース -----
var event = JSON.parse(e.postData.contents).events[0];
// 応答用Token
var replyToken = event.replyToken;
// typeを取得
var type = event.source.type;
// typeを判定して、idを取得
if (type == 'user') {
var id = event.source.userId;
} else if (type == 'group') {
var id = event.source.groupId;
} else if (type == 'room') {
var id = event.source.roomId;
}
// ----- メッセージ送信用パラメータ設定 -----
var url = 'https://api.line.me/v2/bot/message/reply';
var payload = {
'replyToken': replyToken,
'messages': [
{
'type': 'text',
'text': type + '_id = '+ id
}
]
};
var options = {
'method': 'post',
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + ACCESS_TOKEN,
},
'payload' : JSON.stringify(payload)
};
// ----- lineメッセージ送信 -----
UrlFetchApp.fetch(url, options)
}
コードを添付したらデプロイを行なっていきます。
エディタ右上のデプロイ>新しいデプロイをクリックし今回はウェブアプリとしてデプロイします。
以下のような画面が表示された場合、アクセスを承認>googleアカウント選択を行います。
次にAdvanced
を選択し、画面左下のプロジェクト名をクリックします。
遷移後の画面でAllow
を選択するとデプロイが始まりurlが払い出されます。
3.LINE messaging APIに上記のurlをwebhookとして登録
LINE developersのmessaing API設定からwebhook設定を行います。
webhook URLには先ほどGASでデプロイしたurlを指定し、webhookの利用をONにします。
検証をクリックし、200番の成功が帰ってきていればOKです。
botを友達追加してテスト
テストを行う前にLINE公式アカウント設定の「グループトークへの参加を許可する」が有効になっているか確認しましょう。
(これが無効になっているとグループへの追加をした後、すぐに退会してしまうようです)
ここまでできたら、messaing API設定のQRコードを読み取り、botを友達追加>グループに招待します。
グループに対してメッセージを送ると以下のようにgroup idが帰って来ます。
参考