关于FaceBook的接入笔记

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


千万不要看中文,千万不要看中文,千万不要看中文。建议英文加自己的翻译去翻译,中文文档是过时的,注意。 我又从繁体的输入法回来了~~

梦开始的地址:https://developers.facebook.com/

实际上所谓接入facebook,通常指的是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
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值