喜欢Facebook单点登录的iOS应用程序中的按钮

时间:2011-03-17 14:55:31

标签: iphone facebook ios facebook-like

有没有办法在UIWebView中结合使用FB Single-Sign-On登录流程?

我有一个使用UIWebView显示网页的应用程序,在该页面中有一个类似FB的按钮。我已经按照帖子

中提出的那样按钮工作了

Like button in iOS application

但是登录对话框看起来并不好看,如果我可以使用SSO流程,那就太棒了。但我还没有把它发挥出来。有人试过这个吗?

5 个答案:

答案 0 :(得分:2)

我实际上修改了Facebook来源,总是使用safari进行身份验证而不是单点登录。这允许我在UIWebViews中创建我喜欢的按钮(或Like Boxes)。

答案 1 :(得分:2)

Facebook API实际上首先检查您的ios设备是否支持多任务处理。如果不是,则使用弹出对话框。如果设备确实支持,那么它试图使用Facebook应用程序(当然,如果它安装在设备上),然后是safari,然后才会回退到弹出对话框。注意使用相同的Facebook对象,否则你需要为每个动作登录...

答案 2 :(得分:1)

无法使用Web组件(如UIWebView或外部Safari)和本机代码(如您所引用的UIButton),以便以类似SSO的方式在它们之间进行相互通信。

1)FB存储用于授权的登录cookie。

2)每个Web组件,例如, UIWebView或外部Safari使用自己的沙盒cookie存储。我发现(而且我坚信)没有办法实现它们之间的相互通信。

3)本机代码使用一个AccessToken,它存储在每个应用程序的沙箱中,以便在外部FBs API调用中使用(如授权,图形调用等)

4)如果你找到其他方法,请告诉我;)

答案 3 :(得分:0)

您可以从喜欢的按钮拦截动作。

只需设置您喜欢的按钮,其中包含指向http://mydomain.com/doLikeStuff

的链接 在UIWebView中

,签入 web视图:shouldStartLoadWithRequest:navigationType:

对于/ doLikeStuff链接,返回NO(因此Web视图实际上没有做任何事情)并实现自定义流程。

答案 4 :(得分:0)

似乎有一项协议无法做到这一点。但是,这篇文章显示你可以: Using 'Like' with the Facebook Graph API on iOS

要备份它,这里是FB Graph API文档的摘录:

  

您可以评论或喜欢任何具有/ comments或/喜欢的对象   通过发布到https://graph.facebook.com/OBJECT_ID/comments建立联系   和https://graph.facebook.com/OBJECT_ID/likes分别:

(来源:http://developers.facebook.com/docs/reference/api/