• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 在 iOS 中获取 Facebook 好友时出错

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:17:46 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试获取已登录用户的 facebook 好友列表,它在我的帐户中运行良好,但是当我将应用详细信息迁移到新帐户并更改应用 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.sdkarsedJSONResponseKey={
    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
)>}

这是我目前用于获取 friend 的代码

- (BOOL)retrieveFacebookFriendsForProfileIdNSString *)fbProfileId completionBlockvoid (^)(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;
}

如果我使用旧的应用程序 ID 和密码,此代码可以正常工作。我检查了新帐户中的设置,一切都与我在旧帐户中所做的相同,我不明白问题是什么。任何帮助表示赞赏



Best Answer-推荐答案


根据https://developers.facebook.com/docs/apps/changelog 好友列表现在仅返回也使用您的应用的好友:通过/me/friends 端点返回的好友列表现在仅限于已授权您的应用的好友列表。

所以我将上面的代码更改为这个,它给了我使用该应用程序的 friend 列表,而不是整个 FB friend 列表

FBRequest *friendsRequest = [FBRequest requestForGraphPath"/me/friends"];

关于ios - 在 iOS 中获取 Facebook 好友时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753745/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap