创建 Facebook 应用并将主页接入 ChatHub
创建正确类型的 Meta 应用、连接 Facebook 主页、获取 App ID、应用密钥和管理员令牌,然后填入 ChatHub 以接收 Messenger 消息。
本文解决什么问题#
要让 ChatHub 接收并回复某个 Facebook 主页的 Messenger 消息,您需要自己的 Meta 应用。ChatHub 不使用共享应用:每套系统各自申报自己的应用,因此无需等待 Meta 审核,一个主页出问题也不会牵连其他系统。
应用只需为整个系统配置一次,之后想加多少主页都可以。应用密钥属于应用,因此可以共用;每个主页各自的令牌由 ChatHub 向 Meta 获取,您无需手工收集。
1. 在 Meta for Developers 创建应用#
- 1
打开 developers.facebook.com,使用管理该主页的 Facebook 账号登录。
- 2
进入「我的应用」,点击「创建应用」。
- 3
在「应用详情」步骤,用您的品牌名称命名应用。用户授权时会看到这个名称,请勿使用测试名称。
- 4
核对联系邮箱:Meta 会把违规警告和政策通知发到这个地址。
2. 选择 Messenger 使用场景#
这一步决定了后面的一切。Meta 依据创建时申报的使用场景来授予权限,为其他用途创建的应用之后无法再加入 Messenger。
- 1
在「使用场景」步骤,左栏按「商务消息」分组筛选。
- 2
勾选「通过 Meta 的 Messenger 与客户互动」,然后点击「下一步」。
- 3
如果「商务」步骤列表为空可以跳过,之后再关联商务组合也可以。
- 4
在「概览」步骤确认后点击「创建应用」。创建前 Meta 会要求再次输入 Facebook 密码。
3. 获取 App ID 和应用密钥#
- 1
在新应用中打开「应用设置」并选择「基本」。
- 2
复制 App ID。这是公开值,不是机密。
- 3
在「应用密钥」旁点击「显示」并复制。Meta 会再次要求输入密码。
4. 将 Facebook 主页连接到应用#
主页必须先连接到应用,ChatHub 才能看到它,该主页的 webhook 才会送达。
- 1
在应用中打开「使用场景」,点击 Messenger 那一行的「自定义」。
- 2
在左栏选择「Messenger API 设置」。
- 3
滚动到「生成访问令牌」,点击「连接」;若列表中已有主页则点击「添加主页」。
- 4
在弹出的窗口中登录 Facebook,选择要使用的主页并确认授权。
5. 获取管理员访问令牌#
ChatHub 只用这个令牌做一件事:向 Meta 查询您管理哪些主页,并获取每个主页各自的令牌。用这种方式取得的主页令牌不会过期,因此之后管理员令牌过期也不会导致任何在用渠道掉线。
- 1
打开「工具」并选择「图谱 API 探索工具」;在 Meta 应用选择框中选中刚创建的应用。
- 2
在「权限」中添加三项:pages_show_list、pages_messaging 和 pages_manage_metadata。
- 3
点击 Generate Access Token,为主页确认授权,然后复制生成的令牌。
6. 在 ChatHub 中填写应用信息#
- 1
在 ChatHub 中打开「设置」并选择「渠道」分组。
- 2
找到「Facebook 应用」卡片,填入 App ID、应用密钥和管理员令牌。
- 3
点击「保存」。卡片角标会变为「已配置」。
- 4
三个字段下方就是「向 Meta 注册 webhook」,其中已备好回调地址和验证令牌,各带一个「复制」按钮。这两个值由整个系统共用,因此不放在单个渠道里。
7. 把主页添加为渠道并注册 webhook#
- 1
在「设置 → 渠道」的「向 Meta 注册 webhook」中复制回调地址和验证令牌。
- 2
进入应用的「Messenger API 设置」,把两个值分别粘贴到「回调地址」和「验证令牌」,然后点击「验证并保存」。这一步整个应用只需做一次。
- 3
在刚保存的字段下方的「Webhook 字段」表格中,为 messages、messaging_postbacks 和 message_echoes 三个字段打开「订阅」开关。漏掉这一步,即使其他一切都是绿色的,Meta 也不会推送任何消息。
- 4
回到 ChatHub,打开「渠道」页面,点击「添加账号」并选择 Facebook 类型。
- 5
您管理的主页会直接列出;选择一个后点击「创建账号」。
- 6
在新渠道上点击「连接」。添加第二个主页只需重复最后两步,无需再次注册 webhook。
8. 填写隐私政策网址并将应用切换为上线模式#
完成上面七步后,ChatHub 与 Meta 已经正确连通,但新建的应用始终处于开发模式。在该模式下,Meta 只会为拥有应用角色的人发送 webhook:用管理员账号自测时消息正常到达,真实客户发给主页却不会产生任何事件——渠道仍显示已连接,收件箱却始终是空的。
- 1
在 ChatHub 中进入设置 → 渠道,向下找到「向 Meta 注册 webhook」,点击隐私政策网址一行的复制。该页面由 ChatHub 自行提供,地址为系统的 /privacy,无需登录即可打开,Meta 的抓取程序能够读取。
- 2
打开 Meta 应用的应用设置 → 基本,将刚复制的地址粘贴到隐私政策网址一栏,然后点击保存更改。该栏为空时,Meta 会禁用「发布」按钮。
- 3
在应用左侧菜单中打开「发布」,检查各个使用场景,然后点击右下角的「发布」。发布成功后,该菜单项会显示「已发布」;之后不要点击「取消发布」。
- 4
打开应用审核 → 权限和功能,确认 pages_messaging 处于高级访问权限。若仍为标准访问权限,请为拥有该应用的商务管理资产完成商家验证,或提交该权限的审核申请。
- 5
请一位在应用中没有任何角色的账号向主页发消息。消息应在几秒内出现在 ChatHub 收件箱中。
需要事先了解的限制#
Messenger 只允许在客户最后一条消息后的 24 小时内自由回复。超时后 Facebook 会拒绝发出的消息,直到客户再次来信。ChatHub 会在输入框上方提示窗口即将结束和已经结束;内部备注仍可正常保存。
平台还有几项限制:Messenger 发出的消息不支持引用回复,不能发送任意贴纸,按钮必须依附于带文字的消息,因此不带说明文字的纯文件没有位置承载按钮。