Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中获取Facebook好友时出错_Ios_Iphone_Facebook_Facebook Graph Api - Fatal编程技术网

在iOS中获取Facebook好友时出错

在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

我正在尝试获取登录用户的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, 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您也可以引用此帖子