调用Facebook Graph API遇URL格式错误及令牌验证问题求助
问题排查与解决步骤
1. 修复curl命令的URL格式错误
你遇到的URL using bad/illegal format or missing URL是因为curl命令中的URL被换行和空格拆分,shell无法正确解析。可以用两种方式修复:
方式一:将所有参数放在同一行
curl -i -X POST "https://graph.facebook.com/{page-id}/feed?message=Hello World!&access_token={page-access-token}"
方式二:用-d参数单独传递POST数据(更清晰,避免URL编码问题)
curl -i -X POST "https://graph.facebook.com/{page-id}/feed" \ -d "message=Hello World!" \ -d "access_token={page-access-token}"
注意:如果你的shell要求换行转义,要在每行末尾加\,且参数不要有多余的前导空格。
2. 验证Page Access Token的有效性
你提到的user access token提示Error validating access token: The session is invalid because the user logged out.,说明该user token已失效。但如果你的page token是长期有效的(2个月有效期的属于长期page token),它应该不受用户登出影响。请直接在Facebook调试工具中验证page token:
- 直接输入你的page access token,不要混入user token或错误字段
- 检查返回的权限,确保包含
pages_manage_posts(发布页面内容必需的权限),以及token的有效期是否正常
3. 修正调试工具的参数错误
出现invalid field user_access_id=myid& invalid field id=page_id是因为你在调试工具中传递了不存在的参数。调用/{page-id}/feed接口时,只需要传递以下参数:
message:要发布的内容access_token:有效的page access token
不要添加user_access_id这类不存在的字段,确保请求的路径是/{你的page-id}/feed,参数列表中只有上述两个必填项。
额外注意事项
- 确保你的Facebook页面是已发布状态,且你的账号拥有该页面的管理员权限
- 长期page token需要通过有效的user token(未失效时)生成,如果生成page token的user token已失效,但page token本身还在有效期内,依然可以使用;如果page token也失效了,需要用新的有效user token重新生成
内容的提问来源于stack exchange,提问作者Prisoner5446
相关产品推荐
相关产品推荐

