Facebook Open Graph预操作验证

Facebook Open Graph Pre-Action Authentication

本文关键字:操作 验证 Graph Open Facebook      更新时间:2023-09-26

基本上,我刚刚开始为我们的网站开发Facebook Open Graph操作。现在我已经成功地实现了Facebook Action和Objects,但由于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>

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

有几种方法可以检测用户是否登录,可能最有用的是订阅"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(),如果他们的登录状态发生变化(即,如果他们选择添加应用程序),则应再次调用您的事件处理程序