Facebook Open Graph 操作前身份验证

Posted

技术标签:

【中文标题】Facebook Open Graph 操作前身份验证【英文标题】:Facebook Open Graph Pre-Action Authentication 【发布时间】:2012-03-06 17:43:17 【问题描述】:

基本上,我刚刚开始为我们的网站获取 Facebook Open Graph 操作进行一些开发。现在我已经成功实现了 Facebook 动作和对象,但我有点卡在这里,因为 Facebook 文档没有显示很多高级示例。

我正在尝试在页面上设置一个按钮,将操作发布到用户的墙上。但是,目前,如果用户未登录 Facebook 或未对 Facebook 应用程序进行身份验证,则 javascript 会引发错误。

使用 Facebook 文档中的示例,这就是我目前在我的页面上的内容。

我的问题是如何调整它以检测用户是否登录 Facebook 和/或使用我的 Facebook 应用程序进行身份验证?如果未检测到用户登录/验证,则显示登录按钮而不是下方的共享按钮。

如果 Facebook 已登录,它是否可以像使用下面的代码一样显示分享按钮。

<script type="text/javascript">
function shareme()

FB.api('/me/gradtouch:discover&company=URL','post',
                function(response) 
        if (!response || response.error) 
                alert('Error occured');
         else 
            alert('Post was successful! Action ID: ' + response.id);
            
    );

</script>

非常感谢任何帮助、指导,或者即使它是我可以阅读更多关于如何编写可以做到这一点的东西的方向。

【问题讨论】:

【参考方案1】:

有几种方法可以检测用户是否登录,可能最有用的是订阅 'auth.statusChange' 事件

http://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/

这应该在 FB sdk 完成初始化时调用,以及用户的状态(他们是否登录到 FB,他们是否添加了您的应用程序,他们是否根本没有登录.. 参见:http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/ )

然后您可以显示相关按钮,如果您需要用户登录,只需使用您需要的权限调用 FB.login(),如果他们的登录状态发生变化(即,如果他们选择添加应用。)

【讨论】:

非常感谢,非常感谢!希望我能理解这个文档,但快速浏览一下非常有用。干杯!

以上是关于Facebook Open Graph 操作前身份验证的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Open Graph - 可以获取friend_lists 但无法获取成员?

使用 facebook open graph stories v4 将图片附加到操作中

无法向 Facebook 重新提交 Open Graph Action

Facebook Open Graph,提交故事评论

将自定义故事发布到 Facebook Open Graph

最全open graph protocol(开放图谱协议) 介绍操作指南