我正在使用facebook-ios-sdk。我基本上从appDelegate获取facebook,每次它点击我的viewController它调用这个方法:
- (void)openFacebook{
appDelegate.facebook = [[Facebook alloc] initWithAppId:@"11234567892515" andDelegate:self];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"]
&& [defaults objectForKey:@"FBExpirationDateKey"]) {
appDelegate.facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
appDelegate.facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}
if (![appDelegate.facebook isSessionValid]) {
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_likes",
@"read_stream",
@"user_photos",
//@"user_about_me",
//@"email",
@"publish_stream",
@"publish_actions",
nil];
[appDelegate.facebook authorize:permissions];
NSLog(@"Facebook session is valid");
[appDelegate.facebook extendAccessTokenIfNeeded];
}
}
问题是......即使允许应用程序,它仍然会出现允许应用程序的对话框......
即使我已经授权,我怎样才能阻止它每次都要求我授权应用程序?请保持简单我不是天才谢谢:)。
答案 0 :(得分:0)
我的猜测是你登录后没有存储AccessToken和ExpiryDate。
添加此项以查看您是否在UserDefaults
中拥有这些商店NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSLog(@"%@", [defaults dictionaryRepresentation]);
在你的Facebook fbDidLogin方法中你有这样的感觉吗?
// Store session info.
[[NSUserDefaults standardUserDefaults] setObject:_facebook.accessToken forKey:@"FBAccessTokenKey"];
[[NSUserDefaults standardUserDefaults] setObject:_facebook.expirationDate forKey:@"FBExpirationDateKey"];
[[NSUserDefaults standardUserDefaults] synchronize];