在iOS中获取Facebook好友时出错
我正在尝试获取登录用户的facebook friendlist,它在我的帐户中运行良好,但当我将应用程序详细信息迁移到新帐户并更改应用程序ID和应用程序机密时,我在下面遇到了此错误在iOS中获取Facebook好友时出错,ios,iphone,facebook,facebook-graph-api,Ios,Iphone,Facebook,Facebook Graph Api,我正在尝试获取登录用户的facebook friendlist,它在我的帐户中运行良好,但当我将应用程序详细信息迁移到新帐户并更改应用程序ID和应用程序机密时,我在下面遇到了此错误 Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xf89c0b0 {com.facebook.sdk:HTTPStatusCode=400
Error Domain=com.facebook.sdk Code=5 "The operation couldn’t be completed. (com.facebook.sdk error 5.)" UserInfo=0xf89c0b0 {com.facebook.sdk:HTTPStatusCode=400, com.facebook.sdk:ParsedJSONResponseKey={
body = {
error = {
code = 100;
message = "(#100) Unknown fields: username.";
type = OAuthException;
};
};
code = 400;
}, com.facebook.sdk:ErrorSessionKey=<FBSession: 0xe5a6c30, state: FBSessionStateOpen, loginHandler: 0xe58d5a0, appID: 705259966179163, urlSchemeSuffix: , tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0xf87b180>, expirationDate: 4001-01-01 00:00:00 +0000, refreshDate: 2014-05-20 07:14:50 +0000, attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(
status,
permission
)>}
Error Domain=com.facebook.sdk code=5“操作无法完成。(com.facebook.sdk错误5.)”UserInfo=0xf89c0b0{com.facebook.sdk:HTTPStatusCode=400,com.facebook.sdk:ParsedJSONResponseKey={
正文={
错误={
代码=100;
message=“(#100)未知字段:用户名。”;
类型=OAutheException;
};
};
代码=400;
},com.facebook.sdk:ErrorSessionKey=}
这是我当前获取朋友的代码
- (BOOL)retrieveFacebookFriendsForProfileId:(NSString *)fbProfileId completionBlock:(void (^)(NSArray *, NSError *))completionBlock
{
[FBSession openActiveSessionWithReadPermissions:nil
allowLoginUI:YES
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
if (error) {
NSLog(@"Error");
} else if (session.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (error) {
//Throws the code 100 error here
completionBlock(nil, error);
}else{
FBRequest* friendsRequest = [FBRequest requestForMyFriends];
[friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary* result,NSError *error) {
if(error)
completionBlock(nil, error);
else
{
NSArray *friendJSONs = [result objectForKey:@"data"];
NSMutableArray *friends=[NSMutableArray array];
for(NSDictionary * friendDict in friendJSONs)
{
SocialProfile *friend=[[SocialProfile alloc] initWithDictionary:friendDict socialMedia:kSocialMediaFacebook];
[friends addObject:friend];
}
completionBlock(friends, nil);
}
}];
}
}];
}
}];
return YES;
}
-(BOOL)retrieveFacebookFriendsForProfileId:(NSString*)fbProfileId完成块:(void(^)(NSArray*,NSError*))完成块
{
[FBSession openActiveSessionWithReadPermissions:无
阿洛洛洛吉努伊:是的
completionHandler:^(FBSession*会话,
FBSessionState州,
N错误*错误){
如果(错误){
NSLog(@“错误”);
}else if(session.isOpen){
[[FBRequest requestForMe]startWithCompletionHandler:^(FBRequestConnection*连接,NSDictionary*用户,NSError*错误){
如果(错误){
//在这里抛出代码100错误
完成块(无,错误);
}否则{
FBRequest*friendsRequest=[FBRequestFormyFriends];
[FriendsRequestStartWithCompletionHandler:^(FBRequestConnection*连接,NSDictionary*结果,NSError*错误){
如果(错误)
完成块(无,错误);
其他的
{
NSArray*friendJSONs=[result objectForKey:@“数据”];
NSMutableArray*朋友=[NSMutableArray];
for(friendJSONs中的NSDictionary*friendDict)
{
SocialProfile*friend=[[SocialProfile alloc]initWithDictionary:friendDict社交媒体:KSocialMedia Facebook];
[好友添加对象:好友];
}
完成块(朋友,无);
}
}];
}
}];
}
}];
返回YES;
}
如果我使用旧的应用程序Id和密码,此代码可以正常工作。我检查了新帐户中的设置,一切都和我在旧帐户中所做的一样,我不明白问题出在哪里。如有任何帮助,我们将不胜感激
好友列表现在仅返回同时使用你的应用程序的好友:通过/me/friends端点返回的好友列表现在仅限于已授权你的应用程序的好友列表
所以我把上面的代码改成了这个,它给了我使用这个应用程序的朋友列表,而不是整个FB朋友列表
FBRequest *friendsRequest = [FBRequest requestForGraphPath:@"/me/friends"];
据
好友列表现在仅返回同时使用你的应用程序的好友:通过/me/friends端点返回的好友列表现在仅限于已授权你的应用程序的好友列表
所以我把上面的代码改成了这个,它给了我使用这个应用程序的朋友列表,而不是整个FB朋友列表
FBRequest *friendsRequest = [FBRequest requestForGraphPath:@"/me/friends"];
我也遇到了同样的问题。每当你得到解决方案时,请分享。。谢谢\您是否请求用户\朋友权限?04/30之后创建的应用程序受Graph API v2.0的约束,您需要请求用户\u friends权限。有了该权限,您将能够获得用户的朋友列表,这些朋友也在使用您的应用程序。难道[FBRequest requestForMyFriends]不会这样做吗?我也遇到了同样的问题。每当您得到解决方案时,请分享。。谢谢\您是否请求用户\朋友权限?04/30之后创建的应用程序受Graph API v2.0的约束,您需要请求用户\u friends权限。有了该权限,您将能够获得用户的朋友列表,这些朋友也在使用您的应用程序。难道[FBRequest requestForMyFriends]不会这样做吗?@Karun您也可以引用此帖子@Karun您也可以引用此帖子