小弟沒有程式背景,看了幾位前輩的文章,使用Google Apps Script做了一個簡單的機器人
目前能做到如果LINE使用者,他即回應我設定的字串,但遇到的問題是不管使用者發送任何訊息,LINE BOT都會動作
想請教是否能做到只有使用者發送我設定好的關鍵字,Line bot才進行動作呢?
有試著使用switch case,但變成連動作都沒動作
以下為小弟的程式碼,還望有前輩能夠指點一二,感謝!!
function doPost(e) {
//與Line連結
var CHANNEL_ACCESS_TOKEN = 'iJWsCIoiy9ide49Vf / 7SlRLu8gjLhbLMkm + aHkMISFeT7CZJXn1Hy6NKSaDISMRSO4gj3GkDVvyS + WQdGiP04IKVPfLqXXG88Q4X9Rnony3v2z + Qf04u5S + l2VzQ7Mkz1pG4j0HXX6rpV3GYgV2bhQdB04t89 / 1O / w1cDnyilFU =';
var msg= JSON.parse(e.postData.contents);
console.log(msg);
//讀取儲存格數值
var url = 'https://docs.google.com/spreadsheets/d/1HvHYaVFuJijOJzbCfTLRaRVM8krwn2ooxtCIlYDKeY8/edit#gid=1602240186';
var name = '「2月傷害簽到」'
var SpreadSheet = SpreadsheetApp.openByUrl(url);
var SheetName = SpreadSheet.getSheetByName(name);
var Nowboss = SheetName.getSheetValues(2,2,1,1);
// 取出 replayToken 和發送的訊息文字
var replyToken = msg.events[0].replyToken;
var userMessage = msg.events[0].message.text;
//當line使用者發送訊息,即傳送指定訊息
if (typeof replyToken === 'undefined') {
return;
}
var url = 'https://api.line.me/v2/bot/message/reply';
UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN,
},
'method': 'post',
'payload': JSON.stringify({
'replyToken': replyToken,
'messages': [{
'type': 'text',
'text': Nowboss,
}],
}),
});
那就必須在前面過濾非指令式的訊息UrlFetchApp.fetch
這段在發訊息
在這之前過濾就可以了
//加在發訊息前
if(usermessage.indexOf('關鍵字')==-1)
{
return;
}
如果要寫多個指令就
switch(usermessage)
{
//相似關鍵字 做一樣動作
case '點名':
case '點起來':
doSomething(); //可以自己寫function看要做什麼動作
replyText = '點名成功';
break;
case '晚安':
doSomethingElse();
replyText = '晚安';
break;
default:
doWhateverYouWant();
replyText = '測試';
break;
}
`UrlFetchApp.fetch` //replyText統一在這段發送
可以在最後在發送replyText 也可以在case裡面發送
看個人要怎寫囉
第一次回答,各位大老鞭小力點QQ
試試看
//當line使用者發送訊息,即傳送指定訊息
if (typeof replyToken === 'undefined') {
return;
}
var url = 'https://api.line.me/v2/bot/message/reply';
改成
//當line使用者發送訊息,即傳送指定訊息
if (typeof replyToken === 'undefined') {
return;
}
//----- 加這段,<=-1 表示找不到
if(msg.indexOf("設定好的關鍵字")<=-1){
return;
}
//----- 加這段
var url = 'https://api.line.me/v2/bot/message/reply';
另外我想請教您
是看了那一篇文章做出來 LINE BOT 的?
因為
看到卡米狗的做法有點複雜
想看看其他做法是否比較簡單些?
感謝!! 我來試試看!!
我主要是參照這篇製作的,給您參考
https://www.oxxostudio.tw/articles/201804/line-bot-apps-script.html
成功了,非常感謝!!
謝謝指教