我使用facebook sdk在个人资料上发布照片。当我第一次发布照片时,Safari会打开并向我显示Facebook的登录页面。我输入用户名和密码,然后发布图片。现在,对于按钮我编写了注销功能,如下所示:
[FBSession.activeSession closeAndClearTokenInformation];
同样,我使用不同的用户名和密码发布照片,但Facebook登录页面无法打开。它说像你这样的最后一页你已经注册了这个应用程序。
答案 0 :(得分:0)
查看我的回答here。基本上这样做
[FBSession.activeSession closeAndClearTokenInformation];
将关闭内存中会话(在您的应用内)。如果登录是通过Safari进行的,那么在Safari中会话仍处于打开状态,我担心你与此无关。
编辑1:我注意到您是上述问题的作者。这两个问题背后的实际主题是相同的:Facebook会话开放的地方。如果您的应用程序转发到Safari应用程序并且打开了一个网络会话8,无论是什么,在facebook.com,google.com或其他任何方式),您与此无关,它是Safari的责任)。
这样想:假设您有一个按钮可以在Safari中打开任何网站(使用openURL:
方法)。如果您然后导航到facebook.com并登录,然后您回到Facebook,则无法告诉Safari从您的应用程序中退出facebook.com。您的代码中发生的事情基本相同。
答案 1 :(得分:0)
为此,您需要根据FB sdk删除cookie
FBSession* session = [FBSession activeSession];
[session closeAndClearTokenInformation];
[session close];
[FBSession setActiveSession:nil];
NSHTTPCookieStorage* cookies = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray* facebookCookies = [cookies cookiesForURL:
[NSURL URLWithString:@"https://facebook.com/"]];
for (NSHTTPCookie* cookie in facebookCookies) {
[cookies deleteCookie:cookie];
}
如果您使用任何单件存储图像,请在注销时清除这些图像