Line Bot 加入群組後,可以跟使用者進行互動外,還可以協助我們來監控成員的加入以及退出。這樣的動作對於群組成員的管理至關重要,在商業應用上,也可以將不同群組的使用者建立在同一個資料庫中一併進行管理,我們可以從資料庫中了解我們所有的使用者以及其所屬的群組,未來在進行訊息的推播、資料的收集以及相關應用。
因此,筆者希望藉由本文帶領讀者了解如何利用 Line Bot 來監控成員的加入/退出,以及後續的延伸應用。
事件 Event
從系列文章 MoBot : LINE Bot 開發紀錄 ( LINE / Heroku ) 我們曾經介紹過,曾經介紹過,Line Bot 的回應觸發是以事件 (Event) 為主,先前文章中提到的訊息回覆,則是利用 isinstance(event, MessageEvent) 判斷是否為訊息事件 (MessageEvent),若是,則根據訊息內容來進行動作判斷。
ifisinstance(event, MemberJoinedEvent): for member in event.joined.members: # 針對每一位使用者取得群組ID及使用者ID user_id = member.user_id group_id = event.source.group_id # 利用 API 取得使用者暱稱 profile = line_bot_api.get_profile(user_id) user_name = profile.display_name # 新增使用者至資料庫中 MemberTbl.createByUserId(user_id, user_name, bpjid, GWID) # 加入歡迎語句 line_bot_api.reply_message(event.reply_token, TextSendMessage(text=f'Hi ! 歡迎加入 ~'))
當使用者退出群組時,我們亦可以將使用者自資料庫中刪除
1 2 3 4 5 6
ifisinstance(event, MemberLeftEvent): for member in event.joined.members: for member in event.left.members: # 針對每一位使用者自資料庫中進行刪除 user_id = member.user_id MemberTbl.deleteByUserId(user_id)