我正在使用Facebook Connect与我的应用程序。一切都已经建立,所有的代码都可以工作。在昨天左右,我可以用我的应用程序登录,然后发布内容和其他功能。我不记得做出任何真正的改变。和往常一样,每当我按下登录按钮,它就会进入一个Safari页面,在那里我必须确认我想要使用这个应用程序,并说明我登录的是谁。如果我按下确定,它会返回到应用程序。在整个过程中,在应用程序中,Facebook从不登录。请记住:只是昨天这个工作,我不会回想起任何改变!以下是连接如何开始:Facebook SSO未登录(isSessionValid始终返回NO)
-(IBAction)connectToFacebook {
[loginButton setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal];
facebook = [[Facebook alloc] initWithAppId:@"387500177929927" 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];
}
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(makeVisibleButtons) userInfo:nil repeats:NO];
[timer setAccessibilityHint:@"timer"];
}
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// JUST SO THAT HANDLE URL CAN GET CALLED
return YES;
}
所以我按了一个按钮来调用这个IBAction。 NSTimer是不相关的,它只是为了一些按钮的外观。现在,这两种方法永远不会被调用(当我登录吧):
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
ConnectToFB *connect = [[ConnectToFB alloc] init];
return [connect.facebook handleOpenURL:url];
NSLog(@"url");
[connect release];
}
- (void)fbDidLogin {
NSLog(@"log in");
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
[defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
[defaults synchronize];
}
应用程序ID是最新的,并且在信息的plist我的URL方案也是最新的。这里有什么问题?
到底!谢谢.....投票并打勾! – MCKapur 2012-03-25 11:31:22