我有一个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");
}
答案 0 :(得分:2)
确保您的视图控制器符合<FBRequestDelegate>
协议。