关于登陆,状态的保存。
注意
_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对象在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的请求,还在测试。继续。