千万不要看中文,千万不要看中文,千万不要看中文。建议英文加自己的翻译去翻译,中文文档是过时的,注意。 我又从繁体的输入法回来了~~
梦开始的地址:https://developers.facebook.com/
实际上所谓接入
messenger平台
messenger开发文档
零、会触发回调接口失效的原因
1、更换SSL证书导致
更新SSL证书,由于生成的证书链变化也会导致失效
2、变更ip地址
虽然可能是绑定域名,但是会检测ip地址变动
3、账户权限变更
2022年4月前,develop权限用户旧版本设置的主页还是生效,4月后,develop仅能设置自己创建的主页,需要admin才可以调用拥有者的主页。
一、配置facebook 环境

1)创建一个用于调试Messenger的主页

2)配置Webhook回调地址
fbBotToken自定义,用于配置回调地址
fbPageAccessToken通常在配置回调地址后配置fbBotToken=lg_token_for_test
fbPageAccessToken=EAAPeK646ZC2kBANAlEGLXDHOhZBStKAEJZCzC5FvRZAZC1VRIYAVSPMZAGyYsgMY4IwMOYSlhKlmm94H6fUB04ixwySZBmonqEmwsmzMxmgykHGgG0Pjh6n52XLylCSYrM8Ys0qqTFHNCHcXoEBfpWS0bmYVR0GYJZCFBJYxzy92oYWNgjTkv4tC
3)如何测试facebook
messenger搜索自己的主页,就可以沟通了
二、开始开发Messenger
1、不使用辅助sdk
https://developers.facebook.com/docs/messenger-platform/
自己慢慢看,如果有时间,我也自己搞
2、使用辅助sdk
2.1 基础jar包依赖流程
这个,我们可以自定义sdk包,然后根据自己需求做出改动
Tips:建议直接复制jbot内文件,避免依赖等问题,仅需删除BotWebSocketHandler即可
1) github 地址 :
https://github.com/rampatra/jbot
2)打包加入lib依赖:
编译好后直接加入
3)新版webHook 消息类型分析
发生各种交互或事件(包括某人发送消息时)时通知您。Messenger平台将Webhook事件作为
POST请求发送到您的Webhook。

一般情况仅需勾选message事件即可
可以更方便的通过事件驱动类型来监听数据
#具体webhook 可以参照
https://developers.facebook.com/docs/messenger-platform/webhook
通过webhook设置不同的类型,可以对不同类型进行分配各自的回调处理(若配置回调后,持续不响应Webhook事件,会自动相应递进警告且自动取消webhook订阅的问题)
2.2 全盘CV(拷贝忍者自己改)
通常我建议自行更改http客户端,以免出现参数无法传递的问题
定位到FbApiEndpoints,将其中的restTemplate替换为自己的http客户端。
三、功能搭建组合
主要针对收发信息的大部分内容进行操作,结合新版WebHook来对消息内容解析
1、收发事件基本已经归类到EventType中,通过对时间的监听收发
2、已经对Messenger回复信息进行包装为Event,可以轻松获取结构化的信息
1、快速回复(按钮)
对应:
QUICK_REPLY可以针对性的提供按钮,最多13个
回复时
将已点击按钮的标题作为消息发布到对话中。
参数解释(button)
button
| 属性 | 类型 | 说明 |
|---|---|---|
content_type |
string | 必须是以下类型之一text:发送文本按钮user_phone_number:发送一个按钮,让消息接收人可以发送与其帐户绑定的手机号。user_email:发送一个按钮,让消息接收人可以发送与其帐户绑定的邮箱。 |
title |
字符串 | 如果 content_type 为“text”,则必须设置此属性。这些文本将显示在快速回复按钮上。请勿超过 20 个字符。 |
payload |
字符串,数值 | 如果 content_type 为“text”,则必须设置此属性。将通过messaging_postbacks Webhook 事件向您发回的自定义数据。不超过 1000 个字符。 如果设置了 image_url,则可将此项设置为空字符串 |
image_url |
字符串 | **可选。**将在文本快速回复按钮上显示的图片的网址。图片大小不低于 24 X 24 像素。如果图片过大,系统会自动进行裁剪并调整大小。 如果 title 为空字符串,则必须设置此属性。 |
1)纯文本
#只需要在text填入所需回复文本即可
reply(Event event, String text)
2)文字快速带背景
#参数说明
title:展示的内容
payload:真实返回的内容
image_url:背景图url
#单一按钮
message = new Message().setQuickReply(new Button()
.setTitle("展示内容").setPayload("真实相应内容").setImageUrl("背景图url"));
#多按钮
message = new Message().setQuickReplies(new Button[]{
new Button().setTitle("展示内容1").setPayload("真实相应内容2").setImageUrl("背景图url3"),
new Button().setTitle("展示内容1").setPayload("真实相应内容2").setImageUrl("背景图url3")
});
#调用上方message
reply(event,message)
3)位置快速回复
message = new Message().setQuickReply(new Button().setContentType("location").setTitle("请求位置"));
#调用上方message
reply

本文档详述了Facebook Messenger的开发流程,包括配置环境、使用SDK、消息类型的处理及功能实现等内容。介绍了如何创建测试主页、配置Webhook,以及如何通过不同方式与用户交互。
最低0.47元/天 解锁文章
1559





