我尝试将照片发布到iOS应用中的相册中。我希望用户通过他们的名字而不是页面所有者将他们的照片上传到粉丝页面的特定相册。
问题就像下面提到的问题:
Post a photo to an Album on a Facebook fan page without being the admin,
Post a photo to a page for iOS
以下是我发布照片的代码
[params setObject:data forKey:@"source"];
FBRequest *request1 = [FBRequest requestWithGraphPath:@"v2.3/<album-id>/photos"
parameters:[NSDictionary dictionaryWithDictionary:params]
HTTPMethod:@"POST"];
我获得权限的地方
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"publish_actions",
@"user_photos",
@"email",
@"user_likes",
@"publish_pages",
nil];
return [FBSession openActiveSessionWithPermissions:permissions
allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
switch (status) {
case FBSessionStateOpen:
break;
case FBSessionStateClosed:
break;
case FBSessionStateCreated:
break;
case FBSessionStateCreatedOpening:
break;
case FBSessionStateClosedLoginFailed:
break;
case FBSessionStateOpenTokenExtended:
break;
case FBSessionStateCreatedTokenLoaded:
break;
}
}];
}
当我开始请求时,我会收到错误,并说:
code = 200
"error_user_msg" = You don't have permission to edit this photo or album.
"error_user_title" = "Insufficient permissions"
"is_transient" = 0
message = "Permissions error"
我已经阅读了文档,看起来你只需要发布这个权限和专辑-id,然后你就可以在专辑上发帖了。但我刚收到错误。
当我将album-id更改为page-id时,它会起作用,但照片不会属于任何相册。
我是否遗漏了某些内容,或者我误解了这些文件?
答案 0 :(得分:1)
看起来您遇到了访问令牌问题。 要发布到属于页面的相册,您需要使用页面访问令牌而不是用户访问令牌: 根据{{3}}:
页面访问令牌 - 这些访问令牌与用户访问令牌类似,不同之处在于它们为读取,写入或修改属于Facebook页面的数据的API提供权限。要获取页面访问令牌,您需要先获取用户访问令牌并询问manage_pages权限。获得用户访问令牌后,您就可以通过Graph API获取页面访问令牌。
您可以了解如何从documentation获取页面标记。