如何在Facebook粉丝主页墙发布图片?代码发布异常求助
解决Facebook主页发布图片显示为访客帖的问题
我来帮你搞定这个问题!你现在遇到的情况是:用用户身份的access token调用/facebookPage_ID/photos接口时,默认会以该用户的身份在主页发布访客帖,而不是让主页自身发布内容展示在墙面上。要解决这个问题,核心是使用主页专属的Access Token来发起请求,具体操作如下:
1. 获取主页的Access Token
首先得拿到对应主页的专用token,步骤是:
- 确保你的用户Access Token已经拥有
pages_show_list和pages_manage_posts这两个必需权限(这些是发布主页内容的核心权限,需要你的应用通过Facebook审核才能正式使用) - 调用
/{user-id}/accounts接口,返回结果里会包含你管理的所有主页信息,其中就有该主页的access_token字段,把这个token存下来备用
2. 修改你的发布代码
把请求里使用的token替换成刚才拿到的主页token,同时可以明确指定published: true参数确保内容直接发布(默认也是true,但明确写出来更稳妥),修改后的代码示例如下:
// 假设你已经获取到主页的access token,存储在pageAccessToken变量中 FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"/facebookPage_ID/photos" parameters:@{ @"url": @"https://dncache-mauganscorp.netdna-ssl.com/thumbseg/378/378006-bigthumbnail.jpg", @"published": @"true" // 明确指定直接发布到主页墙 } HTTPMethod:@"POST"]; // 设置请求使用主页的access token request.accessToken = [[FBSDKAccessToken alloc] initWithTokenString:pageAccessToken permissions:nil expirationDate:nil refreshDate:nil]; [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { if (error) { NSLog(@"图片发布失败: %@", error.localizedDescription); } else { NSLog(@"图片发布成功,帖子ID: %@", result[@"id"]); } }];
3. 额外注意事项
- 权限审核:如果是正式环境,你的应用必须通过Facebook的权限审核,拿到
pages_manage_posts权限才能正常发布,否则请求会被拒绝 - 测试建议:开发阶段可以用Facebook提供的测试用户和测试主页来验证功能,避免影响真实主页的内容
内容的提问来源于stack exchange,提问作者AndroidAccount




