各位好~我想請問一下為甚麼我的Liff表單在LineBOT按下確認後卻不會有任何的反應
我在前陣子上傳到Heroku後按確認是可以正常推播訊息的
但是現在卻不行了,還請各位告訴我我是不是程式碼或Line那邊沒有設置好。
Heroku連結
https://liff0506.herokuapp.com/index_form.html
Liff設置
程式碼(完整程式碼請點選Heroku查看)
<script>
function initializeApp(data) { //初始化LIFF
var userid = data.context.userId; //取得ID
}
function pushMsg(Pcpu, Pmotherboard, Pssd, Phdd, Pgpu, Pmemory, Ppower, Pcase) {
var msg = "###"; //回傳訊息字串
msg = msg + Pcpu + "#";
msg = msg + Pmotherboard + "#";
msg = msg + Pssd + "#";
msg = msg + Phdd + "#";
msg = msg + Pgpu + "#";
msg = msg + Pmemory + "#";
msg = msg + Ppower + "#";
msg = msg + Pcase + "#";
liff.sendMessages([ //推播訊息
{
type: 'text',
text: msg
}
])
.then(() => {
liff.closeWindow(); //關閉視窗
});
}
$(document).ready(function () {
liff.init(function (data) { //初始化LIFF
initializeApp(data);
});
$('#sure').click(function (e) { //按下確定鈕
pushMsg($('#cpu').val(), $('#motherboard').val(), $('#ssd').val(), $('#hdd').val(), $('#gpu').val(), $('#memory').val(), $('#power').val(), $('#case').val());
});
});
</script>
Request URL: https://d.line-scdn.net/liff/1.0/sdk.js
Request Method: GET
Status Code: 404
Remote Address: 96.7.252.206:443
Referrer Policy: strict-origin-when-cross-origin
發現你還在引用舊的 liff sdk
請先升級到 https://static.line-scdn.net/liff/edge/2/sdk.js
升級好之後再來確認是不是有使用上的錯誤
您好我已經引用新的sdk了
更改程式碼之後也沒有出現錯誤了
但是按下確認後還是沒有反應
還請大神告訴我我哪裡寫錯了
以下是我的程式碼
<script>
// Using a Promise object
function initializeApp() {
liff
.init({
liffId: "1656626380-X2wAEQ6W", // Use own liffId
})
.getProfile()
.then((profile) => {
const userId = profile.userId;
})
.catch((err) => {
// Error happens during initialization
console.log(err.code, err.message);
});
// Using a callback
liff.init({ liffId: "1656626380-X2wAEQ6W" }, successCallback, errorCallback);
}
function pushMsg(Pcpu, Pmotherboard, Pssd, Phdd, Pgpu, Pmemory, Ppower, Pcase) {
var msg = "###"; //回傳訊息字串
msg = msg + Pcpu + "#";
msg = msg + Pmotherboard + "#";
msg = msg + Pssd + "#";
msg = msg + Phdd + "#";
msg = msg + Pgpu + "#";
msg = msg + Pmemory + "#";
msg = msg + Ppower + "#";
msg = msg + Pcase + "#";
liff.sendMessages([ //推播訊息
{
type: 'text',
text: msg
}
])
.then(() => {
liff.closeWindow(); //關閉視窗
});
}
liff.ready.then(() => {
$('#sure').click(function (e) { //按下確定鈕
pushMsg($('#cpu').val(), $('#motherboard').val(),
$('#ssd').val(), $('#hdd').val(), $('#gpu').val(),
$('#memory').val(), $('#power').val(), $('#case').val());
});
});
</script>
我有實際去你貼的網址看,一樣是舊版的 sdk
哦
喔喔抱歉~上面的連結我有更新了
現在是對的連結了
它現在是不知道為甚麼按下確認後
都不會有反應~拜託大大為我解答我已經苦惱了好久
你的 liff
設定裡面設定的網址是?
正常來說用手機的話要透過這個網址進入
https://liff.line.me/1656626380-X2wAEQ6W
我進去後嘗試在電腦上面使用 liff.sendMessage
有出現以下錯誤訊息,你可能確認一下後台的 Line Login
有沒有如我下圖所示的設定user doesn't grant required permissions yet
我的url是跟上面的連結是一樣的
這樣可能要測試看看你按鈕事件有沒有確實觸發哦
可以在你 pushMsg
裡面加個 alert('test')
試試看
大大我也遇到這個問題
我依造你們回覆的內容處理但還是沒反應..
請問我還有哪裡需要更改的嗎?
Heroku連結
https://ebc-leave.herokuapp.com/index_form.html