在哪种情况下调用Facebook IOS FBSessionDelegate方法?

时间:2012-05-04 19:52:56

标签: ios facebook fbconnect

我很清楚,如果用户授予或拒绝许可,则会在登录时调用这些内容:

- (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帐户中删除我的应用程序,是否会调用此方法?不,因为在那种情况下我的应用程序无法打开..

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

1 个答案:

答案 0 :(得分:5)

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

这一个:

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

致电时可以致电:

[facebook extendAccessTokenIfNeeded];

这一个:

- (void) fbDidLogout;

调用

时调用
[facebook logout] //(of course..)

最后一个:

- (void)fbSessionInvalidated;

当您尝试使用过期的会话令牌向Facebook发送http请求时,会调用此方法。

我在Facebook SDK头文件Facebook.m

中找到了它

我会在这里留下任何寻找答案的人的问题:)