0

因此,当我登录到 ios 的 facebook 集成时,我的代码运行良好。我获得了一个具有读写权限的活动访问令牌,并且我实际上已经从应用程序中写入了人们的墙壁和诸如此类的东西。但是,当我的应用程序使用 safari 来验证人们的登录凭据时,会出现常见错误:“必须使用活动访问令牌来查询有关当前用户的信息。”

我不明白为什么我只能从 ios facebook 集成中获取访问代码。无论如何,我下面的相关代码是由当前视图控制器在加载时实现的:

 if (![FBSession activeSession].isOpen) {

    [self openSession];
}

我的方法 openSession 定义如下

 - (void)openSession
 {
     //create the permissions array
     NSArray *permissions =
     [NSArray arrayWithObjects:@"email", @"basic_info", nil];


     [FBSession openActiveSessionWithReadPermissions: permissions
                                   allowLoginUI:YES
                              completionHandler: ^(FBSession *session, FBSessionState status, NSError *error) {
                                  NSLog(@"\n\nopenSession called error = %@\n\n\n",error);

                              }];

}

然后我继续在 viewDidLoadMethod 中继续

 [FBRequestConnection
      startForMeWithCompletionHandler:^(FBRequestConnection *connection,
                                   id<FBGraphUser> user,
                                   NSError *error)
     {
         NSLog(@"error requestion connection: %@",error);
      }];

我期待着回应。提前致谢。

4

1 回答 1

1

使用 Facebook SDK。

NSString *fbAccessToken = [[[FBSession activeSession] accessTokenData] accessToken];

如果您更喜欢点语法,

NSString *fbAccessToken = [FBSession activeSession].accessTokenData.accessToken;`

我希望它对你有用

于 2013-08-05T06:04:58.110 回答