用 Python 畅玩 Line bot - 19:加入与移除好友

当加入一个 line bot 的时候,通常 bot 会传送一个欢迎讯息给使用者,而此设定除了可以透过 Line Official Account Manger内,聊天室相关的部份去做设定之外,也可以透过 Line API 触发 follow/join event,去作出更弹性的欢迎讯息。
而 follow event 跟 join event 的差别在於,前者是个人加入 bot 时候会触发,後者是 bot 加入一个群组时会触发,有一点要注意的是,如果一个群组内已经有一个 line bot,便无法加入第二个 Line bot,会看到他自动退出。

(图一,欢迎讯息设定介面)
https://ithelp.ithome.com.tw/upload/images/20211023/20142564rVKFBKrn03.png

(图二、加入第二个 Line bot 到群组)
https://ithelp.ithome.com.tw/upload/images/20211023/201425643xV2H0Hdcw.jpg

加入

FollowEvent

follow enevt 跟 message event 一样有 reply token,也就是说可以透过reply_message去进行传送欢迎讯息,而如果想要记录下该使用者的资料,可以从 source 从取得 userID,配合下章会说明的取得使用者资料,存入资料库中以便日後使用。

{
"mode": "active",
"replyToken": "099c617dedde4a309ebd9e989b61317f",
"source": 
    {
    "type": "user",
    "userId": "Ub8c776653b3d290b3c3f9d1b9c852cb9"
    },
"timestamp": 1634882086789,
"type": "follow"
}

JoinEvent

跟 follow enevt 基本上一样,不过此处 source 内的会是 groupID,发送的讯息是会到该群组,且不能透过成员在群组中触发 event,去私下传送讯息给在该成员。

{
"mode": "active",
"replyToken": "099c617dedde4a309ebd9e989b61317f",
"source": 
    {
    "groupId": "Ccf4e0e2b490e66ea6fb456102ee7b7ec",
    "type": "group"
    },
"timestamp": 1634882746613,
"type": "join"
}

离开

离开或封锁该 Line bot 时候就会触发的 event,而因为该 event 并没有 reply token,因此不能在被封锁的时候还传送讯息,而这部份的 event 可以结合 follow event 运用在会员资料上,例如当触发 follow event 时,就将该名使用者的资料加入资料库中,当触发 unfollow event 时,就将该名使用者的资料移除资料库。

UnfollowEvent

{
"mode": "active",
"source": 
    {
    "type": "user",
    "userId": "Ub8c776653b3d290b3c3f9d1b9c852cb9"
    },
"timestamp": 1634882067569,
"type": "unfollow"
}

LeaveEvent

{
"mode": "active",
"source": 
    {
    "groupId": "Ccf4e0e2b490e66ea6fb456102ee7b7ec",
    "type": "group"
    },
"timestamp": 1634882775084,
"type": "leave"
}

<<:  Angular Stock Route Guards (Day31)

>>:  【杂谈】 今天就来点闲聊吧②

[火锅吃到饱-6] 天圆地方职人锅物(台中)- 超高CP值的商业午餐 Business Set

门口招牌标榜「来自梧栖」,因为广义来说,天圆也算是「新天地」的旗下品牌。 新天地是台中老字号的品牌,...

[Day 6] 蒐集对话经验

自前两天范例中,我们看到受众目标与假想使用者之重要性。 现在,我们能设身处地的以使用者的角度来设计...

30天程序语言研究

今天是30天程序语言研究的第二十四天,由於资料库开发的部分我是负责前端所以想说顺便多练习一下其他开发...

DAY8 MongoDB 批次操作(bulk wirte) 与 Operators

DAY8 MongoDB 批次操作(bulk wirte) 与 Operators bulk wri...

Day#16 Database manager

前言 先贴上程序码,等一下再补上文字叙述XD 今天来尝试把跟DB相关的行为抽出来写在database...