どうも。つじけ(tsujikenzo)です。このシリーズでは、LINEを使って業務効率化する方法をお送りしています。今日は4回目で、2023年元旦です。本年もよろしくお願いいたします。
前回までのおさらい
前回は、「Messaging APIでメッセージ送信 前編」を、お届けしました。
LINE公式アカウント(正式な呼び方は「チャネル」です。)を作れただけですが、テンションがあがりますね。
今回は、「Messaging APIでオウム返しBot」です。
チャネルアクセストークンの取得
LINE Developersでは、チャネルを操作するために、本人認証手段として、「チャネルアクセストークン」を利用します。
チャネルアクセストークンを、他の人に知られてしまうと、チャネルをのっとられてしまいますので、慎重に管理しましょう。
チャネルアクセストークンの種類
LINE Developersでは、有効期間の異なる3種類のチャネルアクセストークンをサポートしています。
有効期間 | 発行件数 |
---|---|
任意の有効期間(30日以内) | チャネルごとに30件 |
30日間 | チャネルごとに30件 |
なし | チャネルごとに1件 |
これは、開発グループや、利用グループごとにチャネルアクセストークン発行することを想定しているからです。
たとえば、チャネルアクセストークンを再発行しなければならないとき、一時的に利用不可状態になるのを防ぐためです。
ユーザー数が多くなってきたばあいなど、2つのチャネルアクセストークンを切り替えながら開発できることを、知っておきましょう。
これは、中級以降でまなびます。
チャネルアクセストークンの発行
チャネルごとに1件発行される、有効期間なしのチャネルアクセストークンの発行はかんたんです。
チャネルをクリックして、「Messaging API」をクリックします。
ページのいちばん下にある、チャンネルアクセストークンの「発行」をクリックします。
コピーします。
オウム返しをするアプリを作成する
今回は、チャネルに送信されたテキストを、そのままオウム返しにチャレンジします。
まず、GASでオウム返しをするアプリを作成します。
そのアプリを、チャネルから呼び出すようにします。
GASを書く
まず、GASのソースコードです。まずはそのままコピペして、スクリプトファイルに保存しましょう。
/** メッセージが送付された際に、実行される関数 */
function doPost(e) {
// アクセストークン
const ACCESS_TOKEN = 'アクセストークン'
const replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
const userMessage = JSON.parse(e.postData.contents).events[0].message.text;
const url = 'https://api.line.me/v2/bot/message/reply';
const headers = {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + ACCESS_TOKEN
};
//メッセージ送信内容
const payload = JSON.stringify({
'replyToken': replyToken,
'messages': [{
'type': 'text',
'text': userMessage
}]
})
const options = {
'headers': headers,
'method': 'post',
'payload': payload
};
// レスポンス
const response = UrlFetchApp.fetch(url, options);
const data = JSON.parse(response.getContentText());
console.log(data);
}
デプロイする
スクリプトエディタの右上にある、「デプロイ」をクリックして、「新しいデプロイ」をクリックします。
歯車アイコンから「ウェブアプリ」をクリックします。
名前を入力して、アクセスできるユーザーを「全員」にして、最後に「デプロイ」をクリックします。
発行されたURLをコピーして、「完了」をクリックします。
これで、アプリ(インターネット上から呼び出すと、なにか動作をする、という意味でアプリです)が完成しました。
Webhook設定
LINE Developersコンソールに戻り、チャネルの「Messaging API」をクリックします。
Webhook設定の「編集」ボタンをクリックして、URLを貼り付けて、「更新」をクリックします。
「検証」をクリックして「成功」がでることを確認します。失敗するばあいは、デプロイが正しくできていない可能性があります。もう一度確認してみましょう。
Webhookの利用を、オンにします。
応答メッセージの無効化
応答メッセージの「編集」をクリックします。
応答メッセージをオフにします。設定は自動保存されるので、開いたウィンドウを閉じます。
チャネルにつぶやくと、オウム返しをしてくれます。
ちなみに、応答メッセージをオフにしないと、このような自動応答をします。自動応答とアプリがどちらも反応している感じです。
今後の発展について
オウム返しができたということは、ユーザーが送信したテキストメッセージを、アプリの中で条件判定して、適切な値を返すことができます。
たとえば、勤怠管理をするチャネルを作成して、「今日の品川オフィス」と送信すると、出勤しているメンバーをスプレッドシートから返す、なんてことができそうですね。
ほかにも、口座管理チャネルに「残高」と送信すると、クラウド会計ソフトから取得した現預金残高を返す、といったことができそうです。
もちろん、テキストの条件判定ではなく、リッチメニューを置いて、ボタンを押したら、目的のメッセージを返す、ということもできます。
まず勉強会を実施して、社内で業務効率化チャネルを公募するのも楽しいかもしれませんね。
個別のチャネル事例の紹介は、後日にしたいと思います。
まとめ
以上で、「Messaging APIでオウム返しBot」をお届けしました。
特定のユーザーにめがけてプッシュメッセージを送信するためには、個別に振られた「ユーザーID」の取得が必要です。以降は、流れを少し変えて、お届けします。
次回は、「ユーザーIDの取得」をお届けします。