将iPhone Webviews加载为经过Facebook SSO身份验证的用户?

时间:2011-07-18 17:34:41

标签: iphone facebook authentication cookies uiwebview

我已成功将Facebook iOS SDK集成到我的iPhone项目中,并可以发出图形请求,因此我知道我的身份验证令牌和权限正常运行。

我的问题是,当我尝试将Facebook网址传递到UIWebView(例如,查看某人的个人资料,然后能够采取诸如发送朋友请求之类的操作)时,webview会打开一个Sign在/ Login选项中,这应该不会发生,因为我的用户已经通过FB SDK登录了。

有趣的是,通过openURL打开网址会启动Safari应用并将网页加载为经过适当身份验证的用户...但是,我不在我的应用中:

NSString *url = [NSString stringWithFormat:@"http://m.facebook.com/RobertScoble"];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]];

所以我的问题是:有没有办法通过facebook-ios-sdk加载webview作为经过身份验证的用户?或者,有没有办法强制 openURL 不在Safari中加载页面,而是在我的网页浏览中?

提前致谢!

3 个答案:

答案 0 :(得分:1)

此外,这并非iOS独有。使用Facebook的Android SDK和SSO也将引入这种尴尬的用户体验。也就是说,如果您在原生Android应用程序中使用基于webView的Facebook评论,并且您使用Facebook的SSO,则评论将要求用户进行身份验证。

就我而言,这是Facebook移动SDK设计中的一个错误。

注意:选择非SSO,webView身份验证模型将允许所有嵌入式Facebook插件按预期工作。至少Android就是这种情况。

答案 1 :(得分:1)

以下是另一个帖子的答案......

http://facebook.stackoverflow.com/a/9831872/717418

答案 2 :(得分:0)

不幸的是,你无法做到这一点。 Facebook网站将您的身份验证信息(身份验证令牌)保存在cookie中,并且第三方应用程序中的移动Safari和UIWebview之间不会共享cookie。