Facebook内容发布工具

一个通过Facebook Graph API直接向Facebook页面发布帖子、图片和视频的自动化工具,适用于机器人、内容调度程序或集成营销工作流程。

  • by Abdulrahman-Daney
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Abdulrahman-Daney/facebook_post_mcp_tool

使用说明

📢 Facebook发帖工具(MCP)

这个项目是一个使用FastMCP构建的模型连接过程(MCP)工具,它允许您通过Facebook Graph API直接将帖子、图片和视频发布到您的Facebook页面。

它提供了一个简洁且易于自动化的接口,用于通过编程方式发布内容——非常适合机器人、内容调度器或集成的营销工作流程。

🧩 特性/功能

🔐 使用用户访问令牌获取你的Facebook页面访问令牌

📝 在Facebook页面上发布短信

🖼️ 发布带有文字说明的图片

🎥 发布带有描述的视频

⚙️ 作为MCP微服务运行,使用streamable-http,端口为8013

🏗️ 项目结构 脸书发帖工具/ │ ├── facebook_post_tool.py # 主MCP应用程序(此脚本) ├── requirements.txt # Python 依赖项 └── README.md # 文档(此文件)

⚙️ 先决条件

在使用该工具之前,请确保您已具备:

一个Facebook开发者账号 — https://developers.facebook.com

一个与您的页面相连的Facebook应用

一个具有以下权限的用户访问令牌:

页面管理帖子

页面阅读参与度

页面显示列表

页面管理元数据

您的页面ID(来自页面的“关于”部分或Graph API)

🔧 安装

克隆此存储库

克隆仓库:https://github.com/yourusername/facebook_post_tool.git 进入 facebook_post_tool 目录

创建一个虚拟环境(可选,但建议)

`python -m venv venv` 翻译成中文是:“使用 Python 的 venv 模块创建一个名为 venv 的虚拟环境” source venv/bin/activate # macOS/Linux(注:此命令在macOS和Linux系统中用于激活虚拟环境) venv\Scripts\activate # Windows(在Windows系统中激活虚拟环境)

安装所需的依赖项

使用pip安装fastmcp和requests库

🧠 工作原理

该工具提供了四个关键的MCP功能(工具):

工具名称 描述 参数 获取页面访问令牌 使用用户访问令牌 USER_ACCESS_TOKEN 和页面ID PAGE_ID 来检索页面访问令牌 `post_message` 将一条文本消息发布到页面 `PAGE_ID`,需要 `page_token` 和 `message` 将图片和标题发布到页面PAGE_ID,参数包括page_token(页面令牌)、image_url(图片URL)、caption(标题) 发布视频到页面PAGE_ID,附带描述,使用页面令牌page_token,视频URL为video_url,描述为description 🧾 示例用法 1️⃣ 启动MCP服务器 运行 python facebook_post_tool.py 脚本

服务器将在以下位置运行:

http://0.0.0.0:8013(该网址在中文语境下通常直接保留原样,表示访问本地主机的8013端口,无需翻译)

2️⃣ 获取页面访问令牌 从 fastmcp 导入 call_tool

page_token = 调用工具("get_page_token", 参数={ "USER_ACCESS_TOKEN": "您的用户令牌", "PAGE_ID": "您的页面ID" }) 打印(page_token)

3️⃣ 发送一条短信 response = 调用工具("post_message", 参数={ "PAGE_ID": "您的页面ID", "page_token": "您的页面令牌",, "message": "你好,Facebook!🚀" }) 打印响应(或:输出响应)

4️⃣ 发布图片 response = call_tool("post_image", args={ "PAGE_ID": "您的页面ID", "page_token": "您的页面令牌", "image_url": "https://example.com/image.jpg"(翻译为中文可表述为:“图片链接”:“https://example.com/image.jpg”), “标题”:“新品发布!🎉” }) 打印响应(或:输出响应)

5️⃣ 发布视频 response = call_tool("post_video", args={ "PAGE_ID": "您的页面ID", "page_token": "您的页面令牌",, "video_url": "https://example.com/video.mp4", "描述":"观看我们最新的演示视频📽️" }) 打印响应(或:输出响应)

⚙️ 示例 .gitignore 文件

你应该保护令牌和凭据的私密性。 添加一个 .gitignore 文件,内容如下:

Python 缓存

pycache(在中文中通常不直接翻译,但可以解释为):Python 缓存文件目录/ *.pyc(Python 编译字节码文件)

虚拟环境

venv/(虚拟环境目录,通常用于Python项目的独立环境设置)

秘密

`.env` 是一个文件名,通常用于表示一个包含环境变量的配置文件,在中文中可以翻译为“环境变量配置文件”或简单地称为“环境配置文件”。这个文件通常用于存储应用程序运行所需的环境变量,如数据库连接信息、API密钥等,以便在不同的环境中灵活配置和管理 _.token 翻译为中文可以是“令牌(或令牌字符串)”,具体翻译可能根据上下文有所不同,但基本意思是指用于身份验证或授权的一个标识符或字符串 .log(日志文件)

编辑器/操作系统文件

.vscode/(可翻译为)“.vscode文件夹/” 或 “Visual Studio Code配置文件夹/” .idea/ .DS_Store

🧑‍💻 作者

Daney(人名,音译) 软件工程专业学生及开发者 💼 核心关注:自动化 • API 集成 • 云开发