iPhone/Objective-C-Facebook单点登录

iPhone/Objective-C-Facebook单点登录,iphone,objective-c,facebook,Iphone,Objective C,Facebook,我已经在我的iPhone应用程序中使用Facebook的SDK实现了单点登录功能,但我只是想知道您如何检测他们是否已经进行了身份验证和/或接受了权限 我注意到,当检查此项时,Facebook应用程序总是生成并说您已经通过身份验证,并且您总是被迫单击“确定”,这在他们每次打开应用程序时都非常恼人 有一个名为Socialcam的iPhone应用程序,它只要求您接受一次权限,从那时起每次打开应用程序时,它都会知道您已经过身份验证,并且不再要求您 我希望这样做,因为我的应用程序严重依赖Facebook权

我已经在我的iPhone应用程序中使用Facebook的SDK实现了单点登录功能,但我只是想知道您如何检测他们是否已经进行了身份验证和/或接受了权限

我注意到,当检查此项时,Facebook应用程序总是生成并说您已经通过身份验证,并且您总是被迫单击“确定”,这在他们每次打开应用程序时都非常恼人

有一个名为Socialcam的iPhone应用程序,它只要求您接受一次权限,从那时起每次打开应用程序时,它都会知道您已经过身份验证,并且不再要求您

我希望这样做,因为我的应用程序严重依赖Facebook权限。它在我的应用程序的各个不同区域使用他们的个人资料图片和签入权限(例如)

如果我继续使用
NSHTTPCookieStorage

NSLog(@"%@", [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]);
它向我提供了这些信息。我将如何使用它对Facebook Graph API进行身份验证

(
    "<NSHTTPCookie version:0 name:@\"datr\" value:@\"5WqaTXRFMRlijBtMvcGg-wS1\" expiresDate:@\"2013-04-06 07:42:45 +0000\" created:@\"323854917.000000\" sessionOnly:FALSE domain:@\".facebook.com\" path:@\"/\" secure:FALSE comment:@\"(null)\" commentURL:@\"(null)\" portList:[]>",
    "<NSHTTPCookie version:0 name:@\"locale\" value:@\"en_US\" expiresDate:@\"2011-04-19 09:46:10 +0000\" created:@\"324294323.000000\" sessionOnly:FALSE domain:@\".facebook.com\" path:@\"/\" secure:FALSE comment:@\"(null)\" commentURL:@\"(null)\" portList:[]>",
    "<NSHTTPCookie version:0 name:@\"m_user\" value:@\"myfacebookusernameishere%3A105339949%3Anwib6jXhKY2tIYjz%3A0%3Aajax_0%2Cwidth_0%3A1302162165\" expiresDate:@\"2011-07-06 07:42:45 +0000\" created:@\"323854917.000000\" sessionOnly:FALSE domain:@\".facebook.com\" path:@\"/\" secure:FALSE comment:@\"(null)\" commentURL:@\"(null)\" portList:[]>"
)
(
"",
"",
""
)
任何帮助都将不胜感激。

Fulvio

我已经9个多月没有查看我的Facebook代码了。因此,把我的回答作为一个建议。也就是说,我刚刚查看了它,身份验证状态保存在授权过程遗留下来的cookie中。这很容易记录:

NSLog(@"%@", [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]);
享受, 安德鲁

我要试试这个:


cookies有时没有帮助,所以请使用下面的一种

[facebook requestForGraph:@"me" delegate:self]

使用新的Facebook API

您是否保留了该功能?您是否正在检查再次登录的用户的权限?我明白了,我在家时会尝试一下。我假设这将为我提供某种访问令牌,然后我可以使用它来调用graph API方法?@Andrew不确定当我想调用需要访问令牌的graph API方法时这到底意味着什么?我在某处读到关于包含我的应用程序appId的“m_user”值的信息,但我不需要实际用户访问\u令牌才能发出请求吗?也许您正在使用的一些示例代码会有所帮助?