2014-02-27 63 views
0

我使用这个版本在Facebook的SDK登录tutorial和一切工作很好。我使用此方法注销Facebook,但使用此方法[[FBSession activeSession] close];但是当我注销后离开我的应用程序,然后再次运行我自动登录。我无法使用方法[FBSession.activeSession closeAndClearTokenInformation];因为当我尝试再次登录时我要求获得应用程序的权限每一次。那么我应该如何从Facebook注销才能在关闭后注销,然后打开应用程序,并且每次都不要求权限?从ios的facebook注销

PS。我使用facebook登录facebook sdk。

+0

http://stackoverflow.com/questions/18502152/logout-functionality-using-facebook-sdk-in-ios检查这个位置也是注销功能 – morroko

+0

我一个链接确保您使用的登录按钮或控件正在读取磁盘。去磁盘上的应用程序的库目录和偏好设置文件夹中,将会有一个名为com.yourcompanyName.projectName.plist的文件。Facebook登录按钮从那里读取内容(保存在nsuserdefaults中),然后将其写入磁盘在库/ preferences/plist文件中。 –

+0

嘿,检查我上面提到的文件,这将保持磁盘上的所有用户默认值,并且facebook保持 - 在某些用户默认值上访问令牌,权限,过期时间等信息键。只要检查你在会话上做了closeAndClearTokenInformation,然后看看改变是否反映在文件中,或者尝试通过facebook删除文件中使用的键/值。这将为你做。 –

回答

0

您可以使用

[FBSession.activeSession closeAndClearTokenInformation]; 

Facebook的SDK只要求权限第一次,当用户允许应用程序的权限,然后SDK不会为相同的权限再提示。

+0

op不想使用此方法 – morroko

+1

我知道这很奇怪,但是当我使用[FBSession.activeSession closeAndClearTokenInformation];我每次都重定向到facebook登录网站,并提供了我已经允许我的应用程序的信息。我真的不想每次重定向到这个页面 – AYMADA

0

使用close时,您可能不会真正注销。 您确定FBSession.activeSession已设置?请参考FBSession。尝试使用类似:

FBSession *session = [[FBSession alloc] init]; 
[FBSession setActiveSession:session]; 

编辑:

问题可能仅仅是你是不是真正的自动登录,但在使用仅仅是Facebook上的SDK使用上次登录令牌(你已经保存它,因为你不使用closeAndClearTokenInformation),如果这个令牌没有过期,登录工作时不询问用户。

+0

我不创建我的FBSession。我使用开箱即用的facebook-sdk机制来登录 – AYMADA

+0

@AYMADA查看我的编辑 – KIDdAe

0

试试这个

NSHTTPCookie *cookie; 
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for (cookie in [storage cookies]) 
{ 
     [storage deleteCookie:cookie]; 
} 
NSUserDefaults *defauls = [NSUserDefaults standardUserDefaults]; 
[defauls setObject:@"" forKey:@"signInUserID"]; // if you have saved an user info from Facebook in defaults set null to it 
+0

不,这没有帮助。 – AYMADA

+0

这是做这件事的老方法。 –

+0

@RenoJones这样做的新方法是什么?有任何想法吗? – Devarshi