首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS Facebook SDK错误域com.facebook.sdk代码2和代码7

iOS Facebook SDK错误域com.facebook.sdk代码2和代码7
EN

Stack Overflow用户
提问于 2013-12-18 12:06:29
回答 4查看 20.6K关注 0票数 10

我正在开发允许用户通过Facebook登录的应用程序(使用Facebook )。当用户已经在iPhone设置中登录Facebook时,会出现此错误。如果没有-所有的工作正常。

代码语言:javascript
复制
NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];
    [FBSession openActiveSessionWithReadPermissions:permissions
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self fbSessionStateChanged:session state:state error:error];
     }];

我已经尝试将权限设置为零数组--没有任何改变。

日志是:

代码语言:javascript
复制
Error Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed.
(com.facebook.sdk error 2.)" UserInfo=0x1552c6c0 
{com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:SystemLoginDisallowedWithoutError,
com.facebook.sdk:ErrorSessionKey=<FBSession: 0xabe8100, state: FBSessionStateClosedLoginFailed,
loginHandler: 0x0, appID: APPIDHERE, urlSchemeSuffix: ,
tokenCachingStrategy:<FBSessionTokenCachingStrategy: 0x14b8f3d0>,
expirationDate: (null), refreshDate: (null),
attemptedRefreshDate: 0001-12-30 00:00:00 +0000, permissions:(null)>}

有时,代码7的错误也会出现。我已经阅读了几乎所有与此错误相关的主题.

我的脚步是:

  1. 将.plist文件中的应用程序id与file id进行比较。他们是一样的!
  2. 我的应用程序不是处于沙箱模式!
  3. 如果我从[FBSession openActiveSessionWithReadPermissions:permissions改为[FBSession openActiveSessionWithPermissions:permissions- -它可以工作。但这是不可取的。
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-12-18 12:19:19

是的,在你看到这个错误后,如果你去设置,你会看到这个应用程序的设置是“关闭”。但这种情况下的问题是,用户从未被提示允许访问--也就是说,设置在第一次访问时被自动关闭。如果询问用户,那当然是可以理解的,但事实并非如此(就好像SDK静默地自动按下“不允许用户”)。所以这才是个问题。

在进一步阅读之前,我想指出的是,一旦设置好了设置,就不能简单地重复测试它的过程,因为一旦设置好了,它就永远不会问用户(即使删除和重新安装应用程序也没有帮助)。要测试此问题,您需要先通过设置-> General -> reset -> Reset Location & Privacy重新设置权限,然后再尝试复制该权限。

通过测试,我发现如果您第一次请求的权限中有offline_access,那么它将给出这个登录错误(而不是提示用户并将权限设置为OFF)。SDK不检查并告诉您不允许使用此权限;它只是无法登录。

票数 13
EN

Stack Overflow用户

发布于 2014-10-08 20:53:04

这就是我如何让我的工作-传递给它一个空的权限数组。

代码语言:javascript
复制
NSArray *permissionsArray = @[];

但是,请确保您拥有在我的facebook应用程序页面中设置的权限。我只需要默认的,所以我没事。

我有种感觉,facebook改变了服务器端代码。我的应用程序运行良好,然后我的FB登录中断了。

票数 3
EN

Stack Overflow用户

发布于 2015-01-15 03:51:00

我认为这些代码很模糊,会有很多不同的东西。

最后,我发现问题在于,当我为应用程序商店做准备时,我的应用程序包ID还没有更新。登录到你的Facebook开发者帐户,并确保应用程序ID是正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20657780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档