2012-05-04 24 views
3

很明显,我认为这些都是在登录时称为如果用户授予或拒绝权限:在哪些情况下调用Facebook IOS FBSessionDelegate方法?

- (void)fbDidLogin; 
- (void)fbDidNotLogin:(BOOL)cancelled; 

但我想知道当以下FBSessionDelegate方法可称为:

- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt; 
- (void)fbDidLogout; 
- (void)fbSessionInvalidated; 

文档说:

//Called after the access token was extended. 
- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt; 

//Called when the user logged out. 
- (void)fbDidLogout; 

//Called when the current session has expired. 
- (void)fbSessionInvalidated; 

现在什么时候会发生这样的事情?当我打电话给以下?

[Facebook authorize:nil]; 

有没有机会我会得到一个fbDidLogout回调权?

也许如果用户通过Facebook应用程序从他的Facebook帐户中删除我的应用程序,该方法会被调用吗?不,因为我的应用程序在这种情况下不打开。

...所以在哪种情况下这些被称为?

回答

5

我想我找到我自己......

这一个:

- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt; 

可以被称为当你拨打:

[facebook extendAccessTokenIfNeeded]; 

这一个:

当你调用

[facebook logout] //(of course..) 

最后一个0

- (void) fbDidLogout; 

被调用:

- (void)fbSessionInvalidated; 

获取当您尝试发送一个HTTP请求到Facebook的使用已过期的会话令牌的调用。

我发现它在Facebook的SDK头文件Facebook.m

我将离开这里的问题为寻找答案:)

相关问题