iT邦幫忙

1

Line bot 可以接收 Line notify 所傳送的訊息嗎?

  • 分享至 

  • xImage

各位前輩好,小弟目前正在做有關Line Bot的專題,遇到了一處不清楚的地方,想請問一下把Line Bot 和 Line Notify 放在同一個群組,Notify 傳送的訊息有辦法讓 Line Bot去接收並做處理嗎?
謝謝各位前輩/images/emoticon/emoticon41.gif

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
Han
iT邦研究生 1 級 ‧ 2022-05-08 20:12:37
最佳解答

不行哦 Line 基本上禁止讓兩個被程式控制的機器人互相溝通
不然你可以試想看看,兩個如果都有被觸發的狀況下互打
不就進入無限迴圈了嗎?

如果這兩個機器人都是你控制的話,既然都可以知道 Line Notify 的觸發時間點
那你應該要讓觸發時去驅動一般的機器人進行動作,這部分就看你如何設計
可以透過 api 或是任何溝通方式來進行 (用 api 應該是最直接的吧)
只是要注意的是,要發訊息就要透過 push 就不能使用 reply 的方式
因為對機器人來說,沒有任何人跟他說話,所以不能用 reply

那如果 Line Notify 不是由你控制的話,可能就沒有辦法處理
變成說要請設計 Line Notify 觸發程式的人,來呼叫你的 api 會比較好

看更多先前的回應...收起先前的回應...
Chris iT邦新手 4 級 ‧ 2022-05-08 21:13:39 檢舉

謝謝前輩 這樣講瞬間就懂了

Chris iT邦新手 4 級 ‧ 2022-05-08 21:22:01 檢舉

那前輩不好意思我這邊還有一個關於Line Bot的問題想詢問一下
目前是在做關於ESP32LineBot的專題,目前想讓ESP32所接收到的訊息傳回去Line讓LineBot做處理,本來是想利用上面的方式去讓LineBot做處理,但無法成功,也爬過網路上許多文章,但還是沒有辦法解決,想請教一下前輩對這方面有研究嗎?如果有,可以請前輩您給我一點方向嗎?
謝謝前輩/images/emoticon/emoticon41.gif

Han iT邦研究生 1 級 ‧ 2022-05-08 23:02:03 檢舉

不太懂你的 ESP32 部分是怎樣,他會藉由什麼方式收到訊息

Chris iT邦新手 4 級 ‧ 2022-05-08 23:14:26 檢舉

我是利用ESP32接收beacon所發送的訊息

Han iT邦研究生 1 級 ‧ 2022-05-09 00:42:47 檢舉

哦哦 這樣一樣 webhook 收到的話 不是一樣可以推訊息嗎?
你可以簡訊給我 line id 私下聊一下 最近比較閒XD

Chris iT邦新手 4 級 ‧ 2022-05-09 08:32:25 檢舉

可以嗎 謝謝前輩

Chris iT邦新手 4 級 ‧ 2022-05-09 08:35:49 檢舉

非常感謝前輩 已私訊您了

froce iT邦大師 1 級 ‧ 2022-05-09 09:51:46 檢舉

這幹嘛要透過line Notify,不是直接webhook去發push message就好?

Chris iT邦新手 4 級 ‧ 2022-05-09 12:43:50 檢舉

因為本來的目的是要讓LineBot能夠處理ESP32所接收到的訊息,所以才想說試試看用Notify去傳送,看這樣LineBot能不能處理。但聽前輩這樣講,好像是有其他更簡潔的辦法,能否請前輩再講得稍微細一點。
麻煩了,謝謝前輩/images/emoticon/emoticon41.gif

froce iT邦大師 1 級 ‧ 2022-05-10 09:49:09 檢舉

Line Bot 本質上也是一個網站,你ESP32只要能發個post到你的 bot,處理完你要做的事再發一個 push message或 notify 通知到群組就好。

絕對不會動的虛擬code:

line_bot_api = LineBotApi('YOUR_CHANNEL_ACCESS_TOKEN')
handler = WebhookHandler('YOUR_CHANNEL_SECRET')

@app.route("/recive_from_esp32", methods=['POST'])
def callback():
    do_something_like_save_to_db()
    line_bot_api.push_message("接收者ID", messages)

    return 'OK'

https://github.com/line/line-bot-sdk-python/blob/3f28675e69d07e1af4d57c07c62a6d1a26371f7c/linebot/api.py#L117

不用先發一個notify再接webhook這種奇怪的迂迴做法。
push message免費有500則額度,我是建議沒必要的話直接用 notify 就好。

Chris iT邦新手 4 級 ‧ 2022-05-10 11:11:37 檢舉

前輩 您是說我ESP32接收到beacon的訊息後發送POST後Linebot就有辦法接收到ESP32的訊息,並針對訊息做處理,之後再由Bot push message 或由notify來發送訊息這樣嗎

froce iT邦大師 1 級 ‧ 2022-05-10 13:17:19 檢舉

對。

Chris iT邦新手 4 級 ‧ 2022-05-11 01:30:02 檢舉

那前輩 我再發送POST的時候 是把程式碼寫再Arduino對八 然後讓ESP32去發送 這樣的話我再控制linebot python的程式碼是不是也要寫一個接收Post的

froce iT邦大師 1 級 ‧ 2022-05-11 16:55:09 檢舉

對。ESP32這種小裝置該負擔的只有檢測和發送訊號,運算和儲存應該盡量在伺服器端去做。
話說你看不出來我上面的程式碼是接收用的嗎?哪我要檢討了。

Chris iT邦新手 4 級 ‧ 2022-05-11 18:06:40 檢舉

沒有看不出來拉 哈哈哈 我只是再確認一次而已 我先試試看 謝謝前輩的幫忙

Chris iT邦新手 4 級 ‧ 2022-05-19 01:58:20 檢舉

froce前輩 在做的過程中 有許多不懂的地方 也有去網上查 但沒有查到甚麼結果 所以不知能否跟前輩加個賴 請前輩指點一下方向 如果可以的話這是我的賴ID:smile3698 再請前輩加我一下了
謝謝前輩/images/emoticon/emoticon41.gif

0
david89042754
iT邦新手 5 級 ‧ 2022-10-02 11:43:03

我剛剛看了上面文章的留言 我有一些疑問,我有使用ifttt去連動line 讓他能夠發生一個事件就通報到line 上面 通報的機器人是用line nofity 但是老闆要我把line nofity 通報的所有聊天紀錄自動備份到表單以方便統計(excel或google試算表)但現在遇到一個問題是line bot 無法辨識line nofity的訊息以至於無法自動記錄進表單內(真人用戶可以)請問各位程式高手有甚麼方法能決嗎 我苦惱很久了 我是新手帳號所以無法回覆

我要發表回答

立即登入回答