带有MCP工具的Facebook Messenger机器人
与MCP(模型上下文协议)工具集成的完整Facebook Messenger机器人实现。此项目允许您通过Facebook Messenger发送各种类型的消息,并使用用户信息检索消息详细信息。
特性
- 发送文本、图像、视频、文件和音频消息
- 使用用户配置文件信息检索存储的邮件详细信息
- MCP工具集成,便于在AI助手中使用
- 用于接收消息的Flask webhook服务器
- 使用Facebook Graph API丰富用户配置文件
项目结构
.
├── facebook_messanger_mcp.py # Main module with MCP tools
├── flask_server.py # Flask webhook server
├── examples.py # Example usage of the tools
├── .env # Environment variables
└── .gitignore # Git ignore file先决条件
- Python 3.7+
- 启用Messenger产品的Facebook页面和应用程序
- 页面访问令牌
pages_messaging许可 - 验证用于webhook验证的令牌
安装
- 克隆存储库:
git clone
cd facebook_messanger_mcp- 安装所需的依赖项:
pip install flask requests python-dotenv fastmcp- 在中配置环境变量
.env:
PAGE_ACCESS_TOKEN="your_page_access_token"
VERIFY_TOKEN="your_verify_token"配置
Facebook应用程序设置
- 创建Facebook应用程序并添加Messenger产品
- 通过以下方式获取页面访问令牌
pages_messaging许可 - 使用您的服务器URL设置webhook并验证令牌
- 将应用程序订阅到您的Facebook页面
环境变量
PAGE_ACCESS_TOKEN:Facebook页面访问令牌VERIFY_TOKEN:用于验证webhook请求的令牌
用法
运行Flask服务器
启动webhook服务器以接收消息:
python flask_server.py服务器将在上运行 http://localhost:5000.
使用MCP工具
该项目为Facebook Messenger集成提供了几个MCP工具:
- send_text_message(psid,文本) -发送短信
- send_image_message(psid,image_url) -发送图像消息
- send_video_message(psid、video_url) -发送视频消息
- send_file_message(psid,file_url) -发送文件消息
- send_audio_message(psid,audio_url) -发送音频消息
- send_generic_message(psid,message_data) -发送自定义消息
- get_all_message_details(服务器url) -使用用户信息检索邮件详细信息
示例用法
from facebook_messanger_mcp import (
send_text_message,
send_image_message,
get_all_message_details
)
# Send a text message
response = send_text_message("USER_PSID", "Hello from bot!")
print(response)
# Send an image message
response = send_image_message("USER_PSID", "https://example.com/image.jpg")
print(response)
# Get all message details
details = get_all_message_details("http://localhost:5000")
print(details)Webhook端点
/webhook (获取/发布)
- 获取:使用质询验证webhook
- 发布:接收消息并存储发件人信息
/senders (获取)
- 返回所有已存储的发件人信息
`/user-profile/
` (获取)
- 返回给定PSID的用户配置文件信息
消息类型
文本消息
向用户发送纯文本消息。
图像消息
通过提供可公开访问的图像URL发送图像。
视频消息
通过提供可公开访问的视频URL发送视频。
文件消息
通过提供可公开访问的文件URL发送文件。
音频消息
通过提供可公开访问的音频URL发送音频文件。
Facebook平台限制
- 用户必须先与您的机器人发起对话,然后才能发送消息
- 消息只能在最后一次用户交互后的24小时内发送(标准消息)
- 某些消息类型需要特定的权限
错误处理
这些工具从Facebook Graph API返回详细的错误响应。常见错误包括:
- 页面访问令牌无效
- 用户未找到
- 邮件传递限制
- 网络连接问题
贡献
- 分叉存储库
- 创建要素分支
- 提交您的更改
- 推到分支
- 创建pull请求
许可证
该项目根据MIT许可证获得许可。
支持
对于问题和疑问,请在存储库中创建问题。
