へっぽこヘタレシステム管理者の管理人です。
さて・・・
管理人が勤務する自治体では、LINE公式アカウトを運用しています。
ただ、メッセージ機能については、利用しておらず・・・
自動応答で定番ですが・・・
【このアカウントでは個別のお問い合わせは受け付けておりません!】
となっています。
まぁ、このままでも良かったのですが、
ちょっと興味本位で、HPの検索窓と連携できたら面白いかも???
と思ってやってみる事にしました・・・・
数年前ならgoogleと検索して調べるところですが、
生成AIを使えば楽勝で実装できました。
生成AIは確かに便利ですが・・・
これって危険かもですね。
自分で考える事が無くなって、頭が悪くなること必至です。
さて、そんなことはさておいて、コスパとタイパを重視するなら、
生成AIを使わない手はないので、今回は素直に生成AIを最大限活用しました。
まず実装手順ですが・・・
- LINEでMessaging APIを利用できるようにする → これは既に実施済み
- チャンネルアクセストークンを発行する → これも既に実施済み
- App Scriptでコードを作成してデプロイ → ここからやる
- App ScriptでウエブアプリURLを発行
- LINEのWebhook URLにApp ScriptでウエブアプリURLを登録
まぁ、こんな感じです。
まず、LINEのチャンネルアクセストークンは、
まぁLINEの管理者であれば分かっているので説明は不要でしょう。
LINEデベロッパーにアクセスして、コピペするだけです。
次は、問題のApp Scriptですね。
Googleドライブにアクセスして、
新規作成 → その他 → App Script
で新規プロジェクトを作成します。
コードはそれほど難しくありません。
基本このまま貼り付けてもらえばOKですね。
LINEのチャンネルアクセストークンと
公式HPの検索窓のURLをコピペしてもらえばOKです。
var ACCESS_TOKEN = 'LINEのチャンネルアクセストークンを貼り付ける';
// ↓ここを検索専用URL(お尻は多分 &q= となるはず)
var BASE_URL = '公式HPの検索窓のURL&q=';
function doPost(e) {
var event = JSON.parse(e.postData.contents).events[0];
var replyToken = event.replyToken;
// 1. メッセージタイプが「text」でない場合は処理を終了する(フィルタリング)
if (event.message.type !== 'text') {
return;
}
// 2. テキストメッセージの場合のみ、変数に代入して検索処理へ
var userMessage = event.message.text;
var searchUrl = BASE_URL + encodeURIComponent(userMessage);
var responseMessage = "「" + userMessage + "」の検索結果はこちらです:\n" + searchUrl;
// LINEへの返信
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + ACCESS_TOKEN,
},
'method': 'post',
'payload': JSON.stringify({
'replyToken': replyToken,
'messages': [{ 'type': 'text', 'text': responseMessage }],
}),
});
}
コードを作成したら・・・
デプロイして、
ユーザー → 自分
アクセスできるユーザー → 全員
を設定して、ウエブアプリURLを発行してコピペします。
再度、LINEデベロッパーに戻り・・・
WebhookURLに貼り付けます。
検証ボタンを押してOKがでれば問題ありません。
最後に公式LINEアカウントの設定で、
チャット → ON
応答時間 → ON
自動メッセージ → OFF
とします。
これで、LINE公式アカウトを開いて・・・
メッセージを送信すると・・・
送信したメッセージを、公式HPの検索窓で検索した結果一覧のURLがLINEに変身されます。
それをクリックすれば・・・
公式HPでの検索結果が表示されるという仕組み。
実際に動いたので管理人的には大満足。
ただ一つ悔しいのが、生成AIに頼めば、この程度の事は瞬殺でできてします。
人間なんてもはや不要なのではと思う。



コメント