Bottender项目中的Messenger事件处理详解

Bottender项目中的Messenger事件处理详解

bottender ⚡️ A framework for building conversational user interfaces. bottender 项目地址: https://gitcode.com/gh_mirrors/bo/bottender

概述

在Bottender框架中,MessengerEvent对象是处理Facebook Messenger平台事件的核心组件。开发者可以通过这个对象轻松访问和处理来自Messenger的各种用户交互事件。本文将全面解析MessengerEvent提供的各种属性和方法,帮助开发者更好地构建Messenger聊天机器人。

基础事件属性

rawEvent属性

rawEvent属性包含了Messenger平台发送的原始事件数据。这是最底层的原始数据,所有其他属性都是基于此构建的。

{
  sender: { id: '1423587017700273' },
  recipient: { id: '404217156637689' },
  timestamp: 1491796363181,
  message: {
    mid: 'mid.$cAAE1UUyiiwthh0NPrVbVf4HFNDGl',
    seq: 348847,
    text: 'Awesome.',
  },
}

事件类型判断

Bottender提供了一系列便捷方法来判断事件类型:

  • isMessage: 判断是否为消息事件
  • isText: 判断是否为文本消息
  • hasAttachment: 判断消息是否包含附件
  • isQuickReply: 判断是否来自快速回复
  • isPostback: 判断是否为回传事件
  • isPayload: 判断是否包含有效载荷(来自回传或快速回复)

消息内容处理

文本消息处理

对于文本消息,可以直接通过text属性获取消息内容:

event.text; // 返回消息文本内容

附件处理

Messenger支持多种附件类型,Bottender提供了相应的判断方法和访问属性:

  • isImage: 判断是否为图片附件
  • image: 获取图片附件信息
  • isAudio: 判断是否为音频附件
  • audio: 获取音频附件信息
  • isVideo: 判断是否为视频附件
  • video: 获取视频附件信息
  • isFile: 判断是否为文件附件
  • file: 获取文件附件信息
  • isLocation: 判断是否为位置信息
  • location: 获取位置坐标信息

每种附件类型都有对应的属性和方法,使开发者能够轻松处理不同类型的媒体内容。

特殊消息类型

贴纸消息

Messenger平台支持丰富的贴纸消息:

event.isSticker; // 判断是否为贴纸消息
event.sticker; // 获取贴纸ID
event.isLikeSticker; // 判断是否为"点赞"贴纸

回退消息

当Messenger无法识别消息类型时,会发送回退消息:

event.isFallback; // 判断是否为回退消息
event.fallback; // 获取回退消息详情

交互事件处理

快速回复

快速回复是Messenger的重要交互方式:

event.isQuickReply; // 判断是否来自快速回复
event.quickReply; // 获取快速回复内容

回传事件

回传事件用于处理按钮点击等交互:

event.isPostback; // 判断是否为回传事件
event.postback; // 获取回传数据

游戏互动

Messenger支持游戏互动功能:

event.isGamePlay; // 判断是否为游戏事件
event.gamePlay; // 获取游戏交互数据

支付相关事件

Messenger平台支持支付功能,Bottender提供了完整的支付事件处理:

event.isPayment; // 判断是否为支付事件
event.payment; // 获取支付详情
event.isCheckoutUpdate; // 判断是否为结账更新
event.checkoutUpdate; // 获取结账更新信息
event.isPreCheckout; // 判断是否为预结账事件
event.preCheckout; // 获取预结账信息

消息状态事件

Messenger会通知开发者消息的状态变化:

event.isRead; // 判断是否为已读事件
event.read; // 获取已读信息
event.isDelivery; // 判断是否为送达事件
event.delivery; // 获取送达信息

线程控制

在多应用协作场景下,线程控制非常重要:

event.isPassThreadControl; // 判断是否为传递线程控制
event.passThreadControl; // 获取传递控制信息
event.isTakeThreadControl; // 判断是否为接管线程控制
event.takeThreadControl; // 获取接管控制信息
event.isRequestThreadControl; // 判断是否为请求线程控制
event.requestThreadControl; // 获取请求控制信息

其他特殊事件

推荐事件

event.isReferral; // 判断是否为推荐事件
event.referral; // 获取推荐信息
event.ref; // 获取推荐参数

品牌相机事件

event.isBrandedCamera; // 判断是否为品牌相机事件
event.brandedCamera; // 获取相机事件信息

应用角色事件

event.isAppRoles; // 判断是否为应用角色事件
event.appRoles; // 获取角色分配信息

总结

Bottender的MessengerEvent对象提供了全面而便捷的API来处理Messenger平台的各种事件。通过本文的介绍,开发者可以了解到如何利用这些API来构建功能丰富的Messenger聊天机器人。无论是基本的消息处理,还是复杂的支付、线程控制等功能,Bottender都提供了简单易用的接口,大大降低了开发难度。

bottender ⚡️ A framework for building conversational user interfaces. bottender 项目地址: https://gitcode.com/gh_mirrors/bo/bottender

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

缪阔孝Ruler

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值