【发布时间】:2014-11-25 03:10:06
【问题描述】:
我知道在这个网站上有很多相同的问题,但仍然找不到原因。我有一个 Facebook 帐户,然后我转到开发人员 Facebook 页面创建一个应用程序,然后我创建一个集成了 Facebook API 的 iOS 应用程序(登录,获取好友列表)。然后,当我使用上述 Facebook 帐户登录以获取可标记的朋友时,一切正常。问题是当我尝试通过另一个 Facebook 帐户登录时,在获取可标记朋友列表时出现错误。这是我的代码:
[FBRequestConnection startWithGraphPath:@"/me/taggable_friends"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(
FBRequestConnection *connection,
NSDictionary *result,
NSError *error
) {
/* handle the result */
NSArray *data = [result objectForKey:@"data"];
for (FBGraphObject<FBGraphUser> *friend in data) {
NSDictionary *picData = [friend objectForKey:@"picture"];
NSDictionary *picDetail = [picData objectForKey:@"data"];
[friendsList addObject:[friend name]];
[avatarLink addObject:[picDetail objectForKey:@"url"]];
NSLog(@"name: %@,Link: %@", [friend name], [picDetail objectForKey:@"url"]);
}
dispatch_async(dispatch_get_main_queue(), ^{
[tblView reloadData];
});
}];
我也尝试通过代码修复:[FBSession setActiveSession:self.session]; 但没有奏效。错误如下:
Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0x7f9bea9172a0 {com.facebook.sdk:HTTPStatusCode=400, com.facebook.sdk:ErrorSessionKey=<FBSession: 0x7f9be86297f0, state: FBSessionStateOpen, loginHandler: 0x7f9be863d450, appID: 811449395585015, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x7f9be8554390>, expirationDate: 2015-01-23 09:55:49 +0000, refreshDate: 2014-11-25 08:53:50 +0000, attemptedRefreshDate: 0000-12-30 00:00:00 +0000, permissions:(
"public_profile",
"basic_info",
email,
"contact_email",
"user_friends"
)>, com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 10;
message = "(#10) To use taggable_friends on behalf of people who are not admins, developers and testers of your app, your use of this endpoint must be reviewed and approved by Facebook. To submit this feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review";
type = OAuthException;
};
};
code = 400;
headers = (
{
name = Expires;
value = "Sat, 01 Jan 2000 00:00:00 GMT";
},
{
name = "Cache-Control";
value = "no-store";
},
{
name = "Access-Control-Allow-Origin";
value = "*";
},
{
name = Pragma;
value = "no-cache";
},
{
name = "Content-Type";
value = "text/javascript; charset=UTF-8";
},
{
name = "Facebook-API-Version";
value = "v2.2";
},
{
name = "WWW-Authenticate";
value = "OAuth \"Facebook Platform\" \"invalid_request\" \"(#10) To use taggable_friends on behalf of people who are not admins, developers and testers of your app, your use of this endpoint must be reviewed and approved by Facebook. To submit this feature for review please read our documentation on reviewable features: https://developers.facebook.com/docs/apps/review\"";
}
);
}}
抱歉,日志太长了,但我想确保您获得所有信息,以便帮助我找到原因。任何帮助将不胜感激。
编辑
我可以使用另一个 Facebook 帐户来获取上述好友列表,但在此之前我需要在 Facebook 开发者页面上添加特定帐户作为测试员,以便我可以使用这些帐户登录然后获取朋友列表。现在我有一个问题,当我公开我的应用程序时它没有用,因为我无法在我的配置应用程序上添加一百个用户作为测试人员,并且事件我不知道某人的 Facebook 帐户将使用我的应用程序.那么,我是否需要提交我的应用以供 Facebook 审核,然后其他用户可以在使用我的应用时登录并获取好友列表(无需配置这些用户作为我在 Facebook Developer 上的应用中的测试人员页)?或者有其他方法来解决这个问题?请帮我说清楚。非常感谢!
【问题讨论】:
-
您不认为:“(#10) 要代表非管理员、开发人员和测试人员使用 taggable_friends,您对该端点的使用必须经过 Facebook 审核和批准. 要提交此功能以供审核,请阅读我们关于可审核功能的文档:developers.facebook.com/docs/apps/review"。能有什么关系吗?
-
是的,我以前读过它,但不知道在哪里(哪个字段)配置这个。不确定这是问题所在,所以我决定发布这个问题。请详细帮助我.
-
Taggable 如果您不使用 publish_actions 则没有用,所以我假设您正在使用它?如果有,请提交。如果你不是你想做什么?
-
我也试过
public_actions,但登录时出现错误Invalid Scope: public_actions -
此处的错误详情:
com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:UserLoginOtherError, com.facebook.sdk:ErrorLoginFailedOriginalErrorCode=100, NSLocalizedFailureReason=com.facebook.sdk:UserLoginOtherError, com.facebook.sdk:ErrorSessionKey=<FBSession: 0x7fc6c0c45cb0, state: FBSessionStateClosedLoginFailed, loginHandler: 0x0, appID
标签: ios objective-c iphone facebook facebook-graph-api