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

如何在无回调URL时通过运行脚本将RasaCore Chatbot接入Facebook Messenger?

如何在无正式Webhook回调URL的情况下对接Rasa Core与Facebook Messenger

首先得明确:Facebook Messenger的双向交互(用户发消息→bot接收并回复)本质上依赖Webhook机制,但如果只是临时测试或者单向发送消息,我们有两种可行的方案,而且不需要自己的正式域名/服务器。

方案1:单向发送消息(无需Webhook)

如果只需要让你的Rasa bot主动给Facebook用户发消息,可以直接调用Facebook的Send API,不需要设置Webhook。你可以写个Python脚本,在Rasa处理完意图后触发这个脚本发送消息:

  1. 先准备好你的Facebook开发者账号里的页面访问令牌(Page Access Token),还有目标用户的PSID(用户在你的页面下的唯一ID)。
  2. 编写Python脚本调用Send API:
import requests

def send_fb_message(page_token, psid, message_text):
    url = f"https://graph.facebook.com/v18.0/me/messages?access_token={page_token}"
    payload = {
        "recipient": {"id": psid},
        "message": {"text": message_text}
    }
    response = requests.post(url, json=payload)
    if response.status_code != 200:
        print(f"发送失败:{response.json()}")
    return response

# 调用示例
page_token = "你的页面访问令牌"
user_psid = "目标用户的PSID"
bot_response = "这是Rasa bot的回复内容"
send_fb_message(page_token, user_psid, bot_response)

你可以把这个函数集成到Rasa的自定义action里,当Rasa生成回复后,调用这个函数发送消息给用户。

方案2:双向交互(临时Webhook,无需正式域名)

如果需要完整的双向对话,还是得设置Webhook,但可以用ngrok把你的本地Rasa服务暴露成公网可访问的URL,这样就能在Facebook开发者后台设置回调URL了,步骤如下:

  1. 下载并启动ngrok,把本地Rasa的端口(默认是5005)映射到公网:
ngrok http 5005

启动后会得到一个类似https://xxxx-xx-xx-xx-xx.ngrok.io的公网URL。

  1. 在Rasa的credentials.yml里配置Facebook Messenger的连接器:
facebook:
  verify: "你的验证令牌(自己随便设,比如rasa_verify_token)"
  secret: "你的Facebook应用密钥"
  page-access-token: "你的页面访问令牌"
  1. 在Facebook开发者后台的Webhook设置里:

    • 回调URL填https://xxxx-xx-xx-xx-xx.ngrok.io/webhooks/facebook/webhook
    • 验证令牌填你刚才在credentials.yml里设的verify值
    • 订阅messages和messaging_postbacks等事件
  2. 启动Rasa服务:

rasa run --enable-api --cors "*"

这样用户在Messenger发消息,Facebook会把请求转发到ngrok的URL,再转到你的本地Rasa服务,实现双向对话。

你之前Python脚本失败的可能原因

  • 没有正确获取Facebook的页面访问令牌/应用密钥,或者权限不足(需要确保你的令牌有pages_messaging权限)
  • 单向发送时,PSID不正确(PSID是用户和你的页面互动后生成的,不能随便填)
  • 双向交互时,本地端口没有正确暴露,或者Webhook的路径写错了(必须是/webhooks/facebook/webhook)

额外的参考说明

除了你找到的官方run script文档,还有这些细节需要注意:

  • 你需要确保在Facebook开发者后台正确配置应用的角色和权限,比如把你的账号设为页面管理员
  • 如果是测试环境,可以用Facebook的测试用户来测试,避免打扰真实用户
  • 自定义action里处理Facebook的附加消息(比如按钮、快速回复)时,需要按照Facebook的消息格式来构造回复内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:54:23