推播訊息

      在〈推播訊息〉中尚無留言

推播訊息

客戶端使用 Line 傳送訊息到 bot 後,bot 會將訊息再度傳送到指定的伺服器。

bot 資訊及使用者資訊

在 Django 指定的 /line 網頁 view.py 中,可以使用如下代碼取得 bot 資訊及使用者資料。

@csrf_exempt
def html(request):
    body = request.body.decode("utf-8")
    data=json.loads(body)
    user_id = data['events'][0]['source']['userId']
    #使用者的資訊
    print("使用者資訊")
    profile = line_bot_api.get_profile(user_id)
    print(profile)
line_bot_api = LineBotApi(G.line_access_token)
#bot的資訊
print("bot資訊")
print(line_bot_api.get_bot_info())

結果如下

bot資訊
{"basicId": "@190fpywi", "chatMode": "chat", "displayName": "Thomas\u7a0b\u5f0f\u8a2d\u8a08", "markAsReadMode": "manual", "pictureUrl": "https://profile.line-scdn.net/0hhMVG1lRmN2JrPic2QyhINVd7OQ8cEDEqEwwvDE86OQJACXRkXgh_BEo7a1QVCXMwBF97Bk4-aAFA", "userId": "Uf9c2............0b6"}

System check identified no issues (0 silenced).
February 07, 2025 - 21:32:25
Django version 5.0.4, using settings 'pyweb.settings'
Starting development server at http://0.0.0.0:7001/
Quit the server with CONTROL-C.

使用者資訊
{"displayName": "\u5433\u660e\u5b78 Thomas", "language": "zh-TW", "pictureUrl": "https://profile.line-scdn.net/ch/v2/p/u1390d704847b29623cafa053685002af/1354300368068", "userId": "U121..........9a3"}

get_bot_info()

get_bot_info 可以取得 bot 資訊,直接寫在 view.py 中。當 Django 開始執行就會自動取得。其中最重要的是 user_id 及 displayName。user_id 是在註冊 Line 時所得到獨一無二的號碼,displayName 則是顯示在 bot 中的自定名稱。

get_profile(user_id)

get_profile 則是取得使用者的資訊,這個方法需寫在 def html(request)中,因為當使用者傳送訊息後才會觸發 html 方法,此時才可以取得使用者的資訊。

push_message

push_message 可以由 bot 傳送訊息給使用者,而且可以連續發送好幾則。不過這個方法是有額度的,如果是免付費的 bot,一個月最多只能發送 200 則訊息。

push_message 的第一個參數是要發給誰的 user_id,第二個參數需為TextSendMessage()、ImageSendMessage、FlexSendMessage 等多種訊息。

push_message 可以對多人傳送訊息,但需使用 for 迴圈一個一個傳送,也可以使用 group_id (群組) 一次傳送。

🔒 更多內容,請登入會員繼續閱讀。

立即登入

reply_message

reply_message 跟 push_message 幾乎一模一樣,可發送 TextSendMessage()、ImageSendMessage、FlexSendMessage 及 TemplateSendMessage 給使用者。

但每次觸發 html 方法時,只能執行一次 reply_message 方法,而這個方法沒有額度限制。

另外 reply_message 第一個參數必需為 replyToken,跟 push_message 的 user_id 不同。

🔒 更多內容,請登入會員繼續閱讀。

立即登入

雖然不能重複使用 reply_message,但卻可以使用 list 發送多則訊息,一次最多可以發送 5 則訊息,如下所示。

🔒 更多內容,請登入會員繼續閱讀。

立即登入

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *