You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Facebook Messenger机器人Handover Protocol线程控制权传递的疑问求助

我完全明白你在Handover Protocol这里卡壳的感觉——官方文档有时候确实写得太抽象了!让我用直白的方式给你拆解pass_thread_control里的两个核心参数,再给你一个能直接参考的示例。

先搞懂两个核心参数:PSID 和 target_app_id
  • PSID:全称是Page Scoped User ID,说白了就是用户和你的Facebook主页互动时的唯一身份标识。当用户第一次给你的机器人发消息、点击按钮或者关注主页时,Messenger会自动生成这个ID并绑定到该用户。你要传递的是这个特定用户的对话线程控制权,所以PSID就是指定“哪一个用户”的关键。
  • target_app_id:这是你要把线程控制权移交的目标应用ID。这个应用可以是你自己开发的另一个机器人(在Facebook开发者平台创建应用时会生成这个ID),也可以是Messenger官方提供的工具,比如官方客服收件箱(Inbox)的固定ID是263902037430900。
实际调用示例(以API请求为例)

假设现在有个场景:你的电商机器人接到用户询问售后问题,需要把这个用户的对话控制权转交给你的售后专用机器人。

请求基本信息

POST /v18.0/me/pass_thread_control HTTP/1.1
Host: graph.facebook.com
Authorization: Bearer YOUR_PAGE_ACCESS_TOKEN  // 替换成你主页的有效访问令牌
Content-Type: application/json

请求体(JSON格式)

{
  "recipient": {
    "id": "10219876543210"  // 这里就是目标用户的PSID,替换成实际用户ID
  },
  "target_app_id": "123456789012345",  // 替换成你的售后机器人的应用ID
  "metadata": "用户咨询订单退款,转至售后机器人处理"  // 可选字段,用来记录转义原因,方便后续日志排查
}

官方客服工具的特殊示例

如果是要把用户转交给Messenger官方的Inbox客服工具(让人工客服接手),只需要把target_app_id换成官方固定ID即可:

{
  "recipient": {
    "id": "10219876543210"
  },
  "target_app_id": "263902037430900",  // 官方Inbox的固定应用ID
  "metadata": "用户需要人工协助,转至客服收件箱"
}
补充说明

调用这个API成功后,原来的机器人就会失去对该用户对话线程的控制权——除非接收方主动调用pass_thread_control把权限转回,或者你调用take_thread_control强制收回控制权。

内容的提问来源于stack exchange,提问作者Nikhil Savaliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:07:39