1

我得到一个Error: HTTP status code: 400

- (void)openSession
{
    [FBSession openActiveSessionWithReadPermissions:nil
                                       allowLoginUI:YES
                                  completionHandler:
     ^(FBSession *session,
       FBSessionState state, NSError *error) {
         [self sessionStateChanged:session state:state error:error];
     }];    

    [FBRequestConnection startWithGraphPath:@"me" parameters:nil HTTPMethod:@"GET" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
        NSLog(@"result %@",result);
    }];
}

这有时有效,有时我得到这个状态码。是否有更安全/更少故障的方法来获取用户的 Facebook Graph 数据(用户名、姓名、fb_id)?

4

1 回答 1

0

错误是 - 它在openSession方法的末尾。应该已经放在下面的方法和案例中了

- (void)sessionStateChanged:(FBSession *)session
                      state:(FBSessionState) state
                      error:(NSError *)error
{
    switch (state) {
        case FBSessionStateOpen: {
             //My code should have been placed here
    }
}

我假设在openSession方法结束时会话将打开(常识,嗯!)但我错了。openSession刚刚调用FB 对话框 - 你想授权这个应用程序吗

我真正想要的是sessionStateChanged 方法 - case (FBSessionStateOpen) -只有在您单击请求授权的 FB 对话框的 OK 按钮后才会调用它

我希望这可以澄清任何其他有此问题的人的情况。

于 2013-02-22T18:19:39.390 回答