4

在我的项目中,我没有发布任何仅从 FaceBook 获取不同数据的内容。

有时我正在获取数据,但
大多数时候我都收到此错误

操作无法完成。(com.facebook.sdk 错误 5。)

我的小代码是

permissions = [[NSArray alloc] initWithObjects:@"user_friends",@"read_stream",
@"read_requests",@"user_birthday",@"user_about_me",@"user_hometown",
@"user_location",@"user_likes",@"email",
               nil];


[FBSession openActiveSessionWithReadPermissions:permissions
                                   allowLoginUI:YES
                              completionHandler:
 ^(FBSession *session,
   FBSessionState state, NSError *error) {
NSString *queryNew55 = @"SELECT post_id,fromid,time FROM comment WHERE time > 1375553100 AND post_id IN (SELECT post_id FROM stream WHERE source_id = me())";

     // Set up the query parameter
     NSDictionary *queryParam15 = @{ @"q": queryNew55 };
     // Make the API request that uses FQL
     [FBRequestConnection startWithGraphPath:@"/fql"
                                  parameters:queryParam15
                                  HTTPMethod:@"GET"
                           completionHandler:^(FBRequestConnection *connection,
                                               id result,
                                               NSError *error) {
                               if (error) {
                                   NSLog(@"Error in comment query");
                                   NSLog(@"Error: %@", [error localizedDescription]);
                               } else {

                                   NSLog(@"comments Result: %@", result);


                               }

                           }
      ];

 }];  

我在谷歌上看到了很多关于同一个错误的东西
,我也应用了它,但没有任何东西可以永久有效。

在 FaceBook App 中,沙盒模式等所有内容都已关闭,并且 bundle id 设置完美。

链接或代码之类的任何帮助或与此相关的任何内容都将是很好的帮助。

4

1 回答 1

3

我知道这个问题很老,但我的回答可能会帮助其他人。

在遵循他们的一些代码/教程/文档后,我收到了这个错误。

他们的文档和一些示例代码之间似乎存在脱节。

使用

if (FBSession.activeSession.state != FBSessionStateCreated) {
        // Create a new, logged out session.
        self.facebookSession = [[FBSession alloc] init];
    }

[self.facebookSession openWithCompletionHandler:^(FBSession *session,
                                                     FBSessionState status,
                                                     NSError *error) {

不会导致会话被更新

FBSession.activeSession 

得到更新。

因此,您将有一个打开的会话 (self.facebookSession) 和一个 crated&TokenLoaded 的会话 - 它未打开。

所以拨打任何电话,如:

[FBRequestConnection startForMeWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

将失败,因为 FBRequestConnection 使用 FBSession.activeSession

因此,如果您要自己管理会话,则在完成处理程序中可以看到活动会话。

[self.facebookSession openWithCompletionHandler:^(FBSession *session,
                                                     FBSessionState status,
                                                     NSError *error) {

        [FBSession setActiveSession:session];
        // post or load user data.
    }];

它现在似乎对我有用,

希望这可以帮助

于 2014-04-30T01:18:53.710 回答