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

Tie*_*eme 3 facebook fbconnect ios

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

- (void)fbDidLogin;
- (void)fbDidNotLogin:(BOOL)cancelled;
Run Code Online (Sandbox Code Playgroud)

但我想知道何时可以调用以下FBSessionDelegate方法:

- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt;
- (void)fbDidLogout;
- (void)fbSessionInvalidated;
Run Code Online (Sandbox Code Playgroud)

文件说:

//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;
Run Code Online (Sandbox Code Playgroud)

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

[Facebook authorize:nil];
Run Code Online (Sandbox Code Playgroud)

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

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

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

Tie*_*eme 5

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

这个:

- (void)fbDidExtendToken:(NSString*)accessToken expiresAt:(NSDate*)expiresAt;
Run Code Online (Sandbox Code Playgroud)

你打电话时可以打电话:

[facebook extendAccessTokenIfNeeded];
Run Code Online (Sandbox Code Playgroud)

这个:

- (void) fbDidLogout;
Run Code Online (Sandbox Code Playgroud)

调用时调用

[facebook logout] //(of course..)
Run Code Online (Sandbox Code Playgroud)

最后一个:

- (void)fbSessionInvalidated;
Run Code Online (Sandbox Code Playgroud)

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

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

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