Facebook 设置
概述
Facebook channel 把 Anyy 连接到 Facebook Messenger Page。它支持 direct messages、webhook receiving、inbound media、typing indicators 和 live-smoke 检查。
当前 adapter 没有声明群组支持。
前提条件
- 一个 Facebook Page。
- Page id。
- Page access token。
- Anyy 可用的公网 HTTPS webhook endpoint。
- 可选 webhook verify token。
- 可选 app secret,用于 webhook signature verification。
配置
创建凭据
配置 Facebook app 和 Page subscription,让 Messenger events 发送到 Anyy。Webhook path 由 channel adapter 在运行时注册。
配置 Anyy
anyy setup channels facebook \
--set page_id=page-id \
--secret page_access_token='page-access-token' \
--write-config
带 webhook verification 材料:
anyy setup channels facebook \
--set page_id=page-id \
--secret page_access_token='page-access-token' \
--secret webhook_verify_token='verify-token' \
--secret app_secret='facebook-app-secret' \
--write-config
setup 默认值:
| 字段 | 默认值 |
|---|---|
account_id | page |
messaging_type | RESPONSE |
dm_policy | pairing |
send_chunk_chars | 1900 |
media_max_bytes | 5242880 |
启动 Gateway
anyy gateway start
anyy channels reload
运行 Doctor 检查
anyy channels doctor facebook
访问策略
私信
Facebook 默认 dm_policy: pairing。如果 Page 会收到多个人的消息,建议用 allowlist 和 sender id。
群组
这个 adapter 没有声明 Facebook Messenger 群组支持。
管理员
Facebook Page access policy 和共享 command authorization 是两层。
Sessions
每个被接受的 Messenger sender 映射到一个 Anyy session。
媒体支持
入站媒体
Facebook 声明支持 inbound media。文件受 media_max_bytes 限制。
出站媒体
Adapter 发送文本回复和 typing indicators。它没有声明原生 outbound media。
命令
在 Messenger 中使用共享 messaging commands。
Cron 投递
anyy cron create \
--name "Messenger reminder" \
--schedule "30m" \
--prompt "Send the reminder" \
--delivery-target current_user_default \
--delivery-channel facebook
故障排查
- Webhook verification 失败:检查
webhook_verify_token_ref。 - 无法回复:确认 Page access token 和 Page id。
- 意外 sender:使用
dm_policy: allowlist。 - 媒体缺失:检查平台权限和
media_max_bytes。