3

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

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

...那么在什么情况下会调用这些?

4

1 回答 1

5

我想我自己找到了...

这个:

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

调用时可以调用:

[facebook extendAccessTokenIfNeeded];

这个:

- (void) fbDidLogout;

当您调用时被调用

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

最后一个:

- (void)fbSessionInvalidated;

当您尝试使用过期会话令牌向 Facebook 发送 http 请求时调用 Get。

我在 Facebook SDK 头文件Facebook.m中找到了它

我会把问题留给任何寻找答案的人:)

于 2012-05-04T21:22:22.203 回答