iOS Facebook SDK连接在iDevice上失败

时间:2012-05-22 08:22:37

标签: facebook ios5 sdk

我在iOS应用程序中使用facebook connect(ARC,在iOS 5上运行)。它在模拟器和设备上运行良好,但从今天早上起它已经停止在设备上工作,它仍然可以在模拟器上运行。在设备上,我得到了名为。

的fbDinNotLogin方法

现在,我知道差异是模拟器使用移动Facebook和我的应用程序使用原生iOS Facebook应用程序,我也知道你可以调整facebook.m文件强制应用程序在其他地方登录,但我不我想这样做。

从昨天开始加载我以前的版本(一切工作正常)也给了我相同的结果。昨天运行的相同代码今天没有运行。知道为什么会这样吗?下面是我的代表.m文件:

[EIDT] 我从原生的facebook应用程序中获得了各种不同的行为。有时它打开Facebook应用程序,并留在那里不回到我的应用程序。有时它只是快速回到我的应用程序,而不允许Facebook应用程序问我的许可。我很困惑。的 [/编辑]

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:       (NSDictionary *)launchOptions {

user *userClass= [[user alloc] init];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"]) 
{
    // app already launched for the first time


}
else
{
    // This is the first launch ever
    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    [userClass CopyDbToDocumentsFolder];




}




facebook = [[Facebook alloc] initWithAppId:@"XXXXXXXXXX" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] 
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![facebook isSessionValid]) {
[facebook authorize:nil];

}





return YES;
}

-(void)fbDidLogout
{
NSLog(@"Facebook loggedOut");
}

- (void)fbDidNotLogin:(BOOL)cancelled
{


NSLog(@"Facebook Connect Failed");


}


- (void)fbDidLogin {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];

}

- (void)fbSessionInvalidated
{
NSLog(@"Facebook Session Invalidated");
}



- (void)fbDidExtendToken:(NSString*)accessToken
           expiresAt:(NSDate*)expiresAt
{
NSLog(@"Facebook Toekn was extended");
}



- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [self.facebook handleOpenURL:url];
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:            (NSString *)sourceApplication annotation:(id)annotation {
    return [self.facebook handleOpenURL:url];
}


- (void)applicationDidBecomeActive:(UIApplication *)application {
// Although the SDK attempts to refresh its access tokens when it makes API calls,
// it's a good practice to refresh the access token also when the app becomes active.
// This gives apps that seldom make api calls a higher chance of having a non expired
// access token.
[[self facebook] extendAccessTokenIfNeeded];
}

@end

1 个答案:

答案 0 :(得分:0)

原来问题确实是Facebook而不是我的应用程序!我的开发者帐户一直未能保存更改等,但现在又恢复了工作。