0

我有一个 iPhone 应用程序,我可以通过 safari 通过 Facebook 登录,然后它重定向回我的应用程序,但没有调用 fbDidLogin 并且没有调用 fbDidNotLogin。

我可以检测到我的应用何时重新获得焦点,但当时 m_pFacebook.accessToken 仍然为空。

我无法更改 Facebook.m,因为我没有。我的项目正在使用 Facebook 静态库,我不完全确定这意味着我们使用 Facebook.h 而不是 Facebook.m

- (void)attempt
{
m_pFacebook = [[Facebook alloc] initWithAppId:kAppId andDelegate:self];

    if (![m_pFacebook isSessionValid])
    {
        NSLog( @"\nFacebook session is not valid" );

        [m_pFacebook authorize:nil];
    }
    else
    {
        NSLog( @"\nFacebook session is valid" );
    }

}

// Pre iOS 4.2 support
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    NSLog( @"\nhandleOpenURL:%@", url );
    return [m_pFacebook handleOpenURL:url]; 
}

// For iOS 4.2+ support
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    NSLog( @"\nopenURL:%@", url );
    return [m_pFacebook handleOpenURL:url]; 
}



- (void)fbDidLogin
{
    NSLog(@"\nFacebook Did Log In");
    NSLog(@"\nAccess Token is %@", m_pFacebook.accessToken );
    NSLog(@"\nExpiration Date is %@", m_pFacebook.expirationDate );
}

- (void)fbDidNotLogin:(BOOL)cancelled
{
    NSLog(@"\n Facebook Failed to log in");
}
4

1 回答 1

2

确保您的视图控制器符合<FBRequestDelegate>协议。

于 2012-08-09T04:47:06.963 回答