本記事ついて
本記事は プログラミング初学者の私が学習していく中でわからない単語や概要をなるべくわかりやすい様にまとめたものです。
もし誤りなどありましたらコメントにてお知らせいただけるとありがたいです。
前回の記事
https://qiita.com/kou1121/items/d9a6618d96eceefb1de7
こちらでBot用のチャンネル作成していますので見てください
こんにちはと返すBotプログラムを作る
コード
// LINE Message API チャネルアクセストークン
const ACCESS_TOKEN = "[チャネルアクセストークン]";
// リプライ用のLINE API
const REPLY = "https://api.line.me/v2/bot/message/reply";
/**
* ユーザーからのアクションに返信する
*/
function doPost(e) {
const json = JSON.parse(e.postData.contents);
const postMsg = json.events[0].message.text;
const replyToken = json.events[0].replyToken;
let replyText = '';
if(postMsg == 'こんにちは') {
replyText = 'こんにちはー!!';
}
if(replyText == "") {
return;
} else {
//replyするメッセージの定義
const postData = {
'replyToken' : replyToken,
'messages' : [
{
'type' : 'text',
'text' : replyText
}
]
};
//リクエストヘッダ
const headers = {
'Content-Type' : 'application/json; charset=UTF-8',
'Authorization' : 'Bearer ' + ACCESS_TOKEN //'Bearer 'スペース忘れずに
};
//POSTオプション作成
const options = {
'method' : 'POST',
'headers' : headers,
'payload' : JSON.stringify(postData)
};
return UrlFetchApp.fetch(REPLY, options);
}
}
デプロイ
デプロイをクリック(赤枠)
新しいデプロイを選んで
種類の選択のタブをクリック
ウェブアプリを選択
アクセスできるユーザーを全員を選んでください(赤枠)
*ちなみにおれはこれを忘れてえらい目にあいました。
これができたら
ウェブアプリのURL(赤枠)が出るのでそれをコピーしてメモ帳に貼ってください。
次にLINE Official Account Managerの応答設定に行ってください
分からなければ
こちらを↓
https://qiita.com/kou1121/items/d9a6618d96eceefb1de7
Webhookをオンに(赤枠)
Messsaging API設定をクリック(青枠)
Webhook URL(赤枠)に先ほどのデプロイでコピーしたURLを
保存をクリック
これで大丈夫です。
スプレッドシートに乗っている住所を押してくれるBot
スプレッドシートに乗っている住所を教えてくれるBotを作りたいと思います。
これは、在宅ケア(介護)などを行うときに、利用者の住所などを教えてくれるものがあったらどうかなと思って作って見ました。
スプレッドシートにデータを入れる
コードを書く
// LINE Message API チャネルアクセストークン
const ACCESS_TOKEN = "[チャネルアクセストークン]";
// リプライ用のLINE API
const REPLY = "https://api.line.me/v2/bot/message/reply";
// GoogleスプレッドシートをID取得
const File = SpreadsheetApp.openById('[GoogleスプレッドシートのID]');
//シートをシート名で取得
const baseSheet = File.getSheetByName('シート1');
/**
* ユーザーからのアクションに返信する
*/
function doPost(e) {
const json = JSON.parse(e.postData.contents);
const postMsg = json.events[0].message.text;
const replyToken = json.events[0].replyToken;
let replyText = '';
if(postMsg == '札幌駅') {
replyText = baseSheet.getRange('B1').getValue();
} else if(postMsg == '時計台') {
replyText = baseSheet.getRange('B2').getValue();
} else if(postMsg == 'モエレ沼公園') {
replyText = baseSheet.getRange('B3').getValue();
} else if(postMsg == '函館駅') {
replyText = baseSheet.getRange('B4').getValue();
}
if(replyText == "") {
return;
} else {
//replyするメッセージの定義
const postData = {
'replyToken' : replyToken,
'messages' : [
{
'type' : 'text',
'text' : replyText
}
]
};
//リクエストヘッダ
const headers = {
"Content-Type" : "application/json; charset=UTF-8",
'Authorization' : 'Bearer ' + ACCESS_TOKEN //'Bearer 'スペース忘れずに
};
//POSTオプション作成
const options = {
'method' : 'POST',
'headers' : headers,
'payload' : JSON.stringify(postData)
};
return UrlFetchApp.fetch(REPLY, options);
}
}
こんな感じで選択肢が増えています。
もう少し勉強したらGoogleマップなんかを使うのも良いと思います。