关于登陆,状态的保存。
注意
_facebook= [[Facebookalloc] initWithAppId:kAppId];
的初始化状态,和位置。
application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
登陆成功后,通过facebook下面的fbSessiondelegate,中的实现方法fbDidLogi保存,口令和过期.两个值
-(void)fbDidLogin{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:[[FBLocateAppDelegate sharedAppDelegate].facebook accessToken] forKey:KToken];
[defaults setObject:[[FBLocateAppDelegate sharedAppDelegate].facebook expirationDate] forKey:KDate];
[defaults synchronize];
}
方案1,对于facebook对象,声明在delegate中的时候,获取和保存的方法。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
_facebook= [[Facebook alloc] initWithAppId:kAppId];
//check token and expirationDate
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:KToken] && [defaults objectForKey:KDate]){
_facebook.accessToken = [defaults objectForKey:KToken];
_facebook.expirationDate = [defaults objectForKey:KDate];
}
//check for a valid session
if(![_facebook isSessionValid]){
//[_facebook authorize:nil delegate:self];
self.strToken = @"true";
}
// Override point for customization after application launch.
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
里面的,细节,和对象加载的先后顺序,决定了,facebook对象的能保存,从NSUserDefautls中获取的值。
方法二.
由于facebook对象在view里面声明的。所以,在初始化的是既是, -(void)viewDidLoad{}
_facebook= [[Facebook alloc] initWithAppId:kAppId];
//check token and expirationDate
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:KToken] && [defaults objectForKey:KDate]){
_facebook.accessToken = [defaults objectForKey:KToken];
_facebook.expirationDate = [defaults objectForKey:KDate];
}
最后,结果也看到了,获取token和expirationDate的时候,最好还是和 _facebook = [[Facebook alloc] initWithId : kAppId] ,在一起。这样避免,空值;无法达到,最后的对象保存效果。
/分界线/
fb对token,有相同的处理,一个app对应一个token,进过login后的token,和非login状态的token参数,其变化就是在之前的一个字母,登录后的token,第一个字母边位了B****,而非login的状态下,获得的token是A****,
至于能否在登录的情况下获得graph的请求,还在测试。继续。