2

嗨,我正在http://developers.facebook.com/上阅读和阅读教程。

关于登录 Facebook 并从应用程序发布 Feed,我的问题是我根本无法登录 Facebook。

我无法让它工作。这很糟糕,很烦人,并且没有明确的教程/解释。

我试图从我的应用程序登录,当 safari 打开然后 URL 就像疯了一样闪烁..

而且我没有收到错误,为什么?

有没有关于登录的 CLEAR 教程?

它在模拟器上工作得很好,但在设备上却不行。

我现在在 Xcode 4.5 beta 上,但它也不适用于 4.4。

我需要帮助!

[关闭]

编辑:我修好了!我太愚蠢了……我在 7 天之内就为了登录 FB 而苦苦挣扎,然后我改变了(设备上允许使用 Cookie),一切正常!

该死的设备只需要一些饼干..大声笑

4

1 回答 1

0

我大约 2 周前刚刚更新到最近的 FB sdk。这是我的做法:

//FB recommends to put these two in the app delegate in their sample apps but you can place them other places
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
    NSArray *permissions = [NSArray arrayWithObjects:@"publish_actions", nil];
    return [FBSession openActiveSessionWithPermissions:permissions
                                          allowLoginUI:allowLoginUI
                                     completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
                                         NSLog((@"session.state is %d",session.state));
                                         if(session.state==513){
                                             [AppPrefererences sharedAppPrefererences].faceBookLoggedIn=YES;
                                             NSLog((@"facebookLogin pref has been set to yes from inside appDelegate"));
                                         }
                                         else{
                                             [AppPrefererences sharedAppPrefererences].faceBookLoggedIn=NO;
                                         }
                                     }];
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    // FBSample logic
    // We need to handle URLs by passing them to FBSession in order for SSO authentication
    // to work.
    return [FBSession.activeSession handleOpenURL:url];
}


    //Then whereever you want to initiate the log in (i use mine in a tableView)
      AppDelegate  *appDelegate =(AppDelegate*) [[UIApplication sharedApplication]delegate];

 if (![appDelegate openSessionWithAllowLoginUI:NO]) {
                    [appDelegate openSessionWithAllowLoginUI:YES];
                    facebookLoginLabel.text=@"Facebook Log Out";
                    [AppPrefererences sharedAppPrefererences].faceBookEnabled=YES;
                }
                else{
                    facebookLoginLabel.text=@"Facebook Log In";
                    [AppPrefererences sharedAppPrefererences].faceBookLoggedIn=NO;
                    [FBSession.activeSession closeAndClearTokenInformation];                    
                }

然后无论你想在哪里发布,你都这样做:

  [FBRequestConnection startForPostStatusUpdate:@"any thing you want to post"
                                    completionHandler:^(FBRequestConnection *connection, id result, NSError *error){}];

而且,也不要忘记设置 FBLoginViewDelegate

如果您有任何问题,请告诉我!希望能帮助到你!

于 2012-09-14T23:08:36.453 回答