我作为页面的管理员将照片从 ios 应用程序发布到 facebook 页面时遇到问题。我唯一可以作为管理员发布的是状态消息。
这就是我所做的。
// get access token first
[FBRequestConnection startWithGraphPath:@"/__facebook_page_id__?fields=access_token" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
// make sure its not nil
if ([result valueForKey:@"access_token"] != nil) {
NSString *accessToken = [result objectForKey:@"access_token"];
NSLog(@"Access token: %@", accessToken);
NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:@"This is some status message" forKey:@"message"];
[params setObject:accessToken forKey:@"access_token"];
[FBRequestConnection startWithGraphPath:@"/__facebook_page_id__/feed" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"Result: %@", result);
NSLog(@"Error: %@", error);
}];
}
}];
以上代码以管理员身份成功发布到 facebook 页面。由于我需要发布照片,因此我需要将 grap 路径更改为 /facebook_page_id/photos。
NSMutableDictionary* params = [[NSMutableDictionary alloc] init];
[params setObject:UIImagePNGRepresentation(self.imagePreview.image) forKey:@"picture"];
[params setObject:@"This is some description" forKey:@"message"];
[params setObject:accessToken forKey:@"access_token"];
[FBRequestConnection startWithGraphPath:[NSString stringWithFormat:@"/__facebook_page_id__/photos"] parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"Result: %@", result);
NSLog(@"Error: %@", error);
}];
上述代码发布成功,但不是管理员身份。尽管我正在使用页面的访问令牌。
我认为路径 fb_page_id/photos 已损坏,所以我尝试使用 fb_page_id/feed 并发送其他字段,例如链接、图片等。但是,它仍然以用户而不是页面管理员的身份发布。
如果我做错了,请告诉我。
一些信息: - 部署目标:5.1 及以上 - Facebook SDK 版本:3.7
先感谢您。