facebook_page_ronnie — 罗尼的Facebook页面
v22.0管理Ronnie的Facebook页面,包括发布文本或照片,测试评论权限,诊断token问题,并使用浏览器回退处理被阻止的API。
运行时依赖
版本
诊断发布成功但评论/回复失败的原因
安装命令
点击复制技能文档
使用此技能进行Ronnie的Facebook页面操作,特别是:
通过Graph API直接发布页面帖子 测试Meta应用程序更改后的权限 诊断发布工作但评论/回复失败的原因 当参与API被阻塞时切换到浏览器自动化
配置要求: 环境键:FACEBOOK_PAGE_ID、FACEBOOK_PAGE_ACCESS_TOKEN、FACEBOOK_GRAPH_VERSION(可选, 默认v22.0)
每个配置项的含义: FACEBOOK_PAGE_ID:用于Graph API端点的数字Facebook页面ID FACEBOOK_PAGE_ACCESS_TOKEN:用于发布帖子和测试参与操作的页面访问令牌 FACEBOOK_GRAPH_VERSION:可选的Graph API版本固定,例如v22.0
快速检查:bash "/scripts/check_env.sh"
如何获取这两个必需参数 A. 获取FACEBOOK_PAGE_ID 选择以下方法之一: 从Facebook页面URL / 关于区域 打开页面在浏览器中。在某些页面视图中,页面ID显示在关于/透明度/专业仪表板相关区域。复制数字页面ID。 通过Graph API使用页面令牌 运行:python3 - <<'PY' 导入os、json、urllib.request、ssl 令牌 = os.environ['FACEBOOK_PAGE_ACCESS_TOKEN'] url = f'https://graph.facebook.com/v22.0/me?fields=id,name&access_token={token}' ctx = ssl.create_default_context() 使用urllib.request.urlopen(url, context=ctx, timeout=30)作为r: 打印(r.read().decode()) PY 预期结果示例:{"id":"123456789012345","name":"您的页面名称"} id值是您的FACEBOOK_PAGE_ID。
B. 获取FACEBOOK_PAGE_ACCESS_TOKEN 推荐路径: 登录Meta for Developers并打开您的应用程序。 确保应用程序具有工作流所需的权限,通常包括: pages_show_list pages_read_engagement pages_manage_posts pages_manage_engagement pages_read_user_content(对于评论相关工作流推荐) 为管理页面的Facebook帐户生成用户访问令牌。 使用该用户令牌查询页面帐户并检索页面访问令牌: python3 - <<'PY' 导入os、json、urllib.request、ssl 用户令牌 = os.environ['FACEBOOK_USER_ACCESS_TOKEN'] url = f'https://graph.facebook.com/v22.0/me/accounts?access_token={user_token}' ctx = ssl.create_default_context() 使用urllib.request.urlopen(url, context=ctx, timeout=30)作为r: 打印(r.read().decode()) PY 在返回的JSON中,找到目标页面条目: 复制其id作为FACEBOOK_PAGE_ID 复制其access_token作为FACEBOOK_PAGE_ACCESS_TOKEN
重要提醒: 添加新权限后,您通常需要重新生成令牌 如果应用程序仍处于开发模式,某些生产行为可能仍被阻塞 执行Facebook帐户必须实际具有必要的页面角色/权限
默认执行策略
- 页面帖子发布
- 页面评论/回复
- 浏览器后备
推荐的Python模式用于文本页面帖子 python3 - <<'PY' 导入os、urllib.request、urllib.parse、ssl 页面id = os.environ['FACEBOOK_PAGE_ID'] 令牌 = os.environ['FACEBOOK_PAGE_ACCESS_TOKEN'] 版本 = os.environ.get('FACEBOOK_GRAPH_VERSION', 'v22.0') 消息 = '您的帖子文本在这里' url = f'https://graph.facebook.com/{version}/{page_id}/feed' 数据 = urllib.parse.urlencode({ 'message': 消息, 'access_token': 令牌, }).encode('utf-8') req = urllib.request.Request(url, data=数据, method='POST') ctx = ssl.create_default_context() 使用urllib.request.urlopen(req, context=ctx, timeout=30)作为r: 打印(r.read().decode()) PY 预期成功结果:{"id":"PAGEID_POSTID"}
推荐的Python模式用于页面评论测试 python3 - <<'PY' 导入os、urllib.request、urllib.parse、ssl 版本 = os.environ.get('FACEBOOK_GRAPH_VERSION', 'v22.0') 令牌 = os.environ['FACEBOOK_PAGE_ACCESS_TOKEN'] 帖子id = 'TARGET_POST_ID' 消息 = '从API测试评论' url = f'https://graph.facebook.com/{version}/{post_id}/comments' 数据 = urllib.parse.urlencode({ 'message': 消息, 'access_token': 令牌, }).encode('utf-8') req = urllib.request.Request(url, data=数据, method='POST') ctx = ssl.create_default_context() 尝试: 使用urllib.request.urlopen(req, context=ctx, timeout=30)作为r: 打印(r.read().decode()) 除urllib.error.HTTPError作为e: 打印(e.read())