我是程式新手,目前利用Google App Script寫了一支line bot來實現關鍵字回覆的功能,同時希望透過每天紀錄加入好友人數、發送訊息數量…等 messaging API insight的數據於Googlesheet 中做長時間的追蹤以利行銷統計目的,僅管send reply message 與 send push message已實作成功,但目前仍未成功取得insight資訊,以下為我部分的程式碼,請問我如何能解決呢? 感謝大神協助!
================================================================
//嘗試透過抓關鍵字"1"來回覆20220308以前加入好友的人數
if (messageText == "1") {
replyMsg(replyToken, [{
"type": "text",
"text": "The insight is" + insight(channelToken, 20220308).followers
}] , channelToken);
}
// 回覆訊息
function replyMsg(replyToken, userMsg, channelToken) {
var url = 'https://api.line.me/v2/bot/message/reply';
var opt = {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + channelToken,
},
'method': 'post',
'payload': JSON.stringify({
'replyToken': replyToken,
'messages': userMsg
})
};
UrlFetchApp.fetch(url, opt);
}
我估計是insight function 中的語法有誤使得bot無法正確取得Line message api之結果,但苦無方向進行debug… 謝謝!
首先請將程式碼改成這種形式,會提高大家幫你解答的意願
//嘗試透過抓關鍵字"1"來回覆20220308以前加入好友的人數
if (messageText == "1") {
replyMsg(
replyToken,
[
{
type: "text",
text: "The insight is" + insight(channelToken, 20220308).followers,
},
],
channelToken
);
}
// 回覆訊息
function replyMsg(replyToken, userMsg, channelToken) {
var url = "https://api.line.me/v2/bot/message/reply";
var opt = {
headers: {
"Content-Type": "application/json; charset=UTF-8",
Authorization: "Bearer " + channelToken,
},
method: "post",
payload: JSON.stringify({
replyToken: replyToken,
messages: userMsg,
}),
};
UrlFetchApp.fetch(url, opt);
}
//取得官方帳號insight資訊
function insight(channelToken, date) {
var url = "https://api.line.me/v2/bot/insight/followers?date={" + date + "}";
var opt = {
headers: {
//'Content-Type': 'application/json; charset=UTF-8',
Authorization: "Bearer " + channelToken,
},
};
UrlFetchApp.fetch(url, opt);
}
你的問題在於,沒有將打完 api
後的結果回傳
但我自己很少在用 Google App Script
所以不確定流程
應該是把 fetch
完的結果放進變數並且回傳即可
var result = UrlFetchApp.fetch(url, opt);
return result;