菜鸟教程小白 发表于 2022-12-12 22:17:46

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


                                            <p><p>我正在尝试获取已登录用户的 facebook 好友列表,它在我的帐户中运行良好,但是当我将应用详细信息迁移到新帐户并更改应用 ID 和应用密码时,我在下面收到此错误</p>

<pre><code>Error Domain=com.facebook.sdk Code=5 &#34;The operation couldn’t be completed. (com.facebook.sdk error 5.)&#34; UserInfo=0xf89c0b0 {com.facebook.sdk:HTTPStatusCode=400, com.facebook.sdk:ParsedJSONResponseKey={
    body =   {
      error =         {
            code = 100;
            message = &#34;(#100) Unknown fields: username.&#34;;
            type = OAuthException;
      };
    };
    code = 400;
}, com.facebook.sdk:ErrorSessionKey=&lt;FBSession: 0xe5a6c30, state: FBSessionStateOpen, loginHandler: 0xe58d5a0, appID: 705259966179163, urlSchemeSuffix: , tokenCachingStrategy:&lt;FBSessionTokenCachingStrategy: 0xf87b180&gt;, 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
)&gt;}
</code></pre>

<p>这是我目前用于获取 friend 的代码</p>

<pre><code>- (BOOL)retrieveFacebookFriendsForProfileId:(NSString *)fbProfileId completionBlock:(void (^)(NSArray *, NSError *))completionBlock
{

    [FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:^(FBSession *session,
                                                      FBSessionState state,
                                                      NSError *error) {
                                    if (error) {

                                          NSLog(@&#34;Error&#34;);
                                    } else if (session.isOpen) {

    [ startWithCompletionHandler: ^(FBRequestConnection *connection, NSDictionary&lt;FBGraphUser&gt; *user, NSError *error) {
      if (error) {
            //Throws the code 100 error here
            completionBlock(nil, error);
      }else{
            FBRequest* friendsRequest = ;
            [friendsRequest startWithCompletionHandler: ^(FBRequestConnection *connection,NSDictionary* result,NSError *error) {
                if(error)
                  completionBlock(nil, error);
                else
                {
                  NSArray *friendJSONs = ;

                  NSMutableArray *friends=;
                  for(NSDictionary * friendDict in friendJSONs)
                  {
                        SocialProfile *friend=[ initWithDictionary:friendDict socialMedia:kSocialMediaFacebook];
                        ;
                  }
                  completionBlock(friends, nil);
                }
            }];
      }
    }];

                                    }
                                  }];
    return YES;
}
</code></pre>

<p>如果我使用旧的应用程序 ID 和密码,此代码可以正常工作。我检查了新帐户中的设置,一切都与我在旧帐户中所做的相同,我不明白问题是什么。任何帮助表示赞赏</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>根据<a href="https://developers.facebook.com/docs/apps/changelog" rel="noreferrer noopener nofollow">https://developers.facebook.com/docs/apps/changelog</a>
好友列表现在仅返回也使用您的应用的好友:通过/me/friends 端点返回的好友列表现在仅限于已授权您的应用的好友列表。</p>

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

<pre><code>FBRequest *friendsRequest = ;
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iOS 中获取 Facebook 好友时出错,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23753745/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23753745/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iOS 中获取 Facebook 好友时出错