Facebook标签获取访问用户ID

Tim*_*len 2 facebook

我正在开发一个应用程序,它将一个选项卡添加到特定的粉丝页面(它不适合在粉丝页面之外使用),但我需要获取正在查看选项卡的用户的ID (该选项卡包含一个比赛,用户需要回答几个问题,我们希望保存这些问题的答案,以便我们确定获胜者.

我知道标准的facebook标签应用程序只能得到关于用户的模糊信息(语言和用户年龄的粗略指示),但我想知道如何获取正在查看标签的用户的用户ID.我想强调一下,这个页面没有安装在用户个人资料页面上,所以我无法获得这样的ID.我当时认为可能有办法要求获得有关用户的信息的权限,但我之前从未在选项卡中看到过这种情况,仅在画布应用上.

我们不能在画布页面上进行这个比赛,我们真的需要它在标签页上.另一种选择是随机选择我们的粉丝作为赢家,但我宁愿真正解决这个问题.

有关要求用户从应用程序选项卡访问其个人数据的权限的任何帮助将不胜感激.

提前致谢,

蒂姆

jBi*_*Bit 6

为了获得有关用户的任何特定信息,该用户必须授权您的应用程序.

根据您的要求,我建议您使用JavaScript SDK:http: //developers.facebook.com/docs/reference/javascript/

以下代码将尝试在加载时记录用户 - 如果成功,响应将包含用户标识和访问标记.如果用户尚未对应用程序进行审核,则会弹出授权对话框.在该示例中,在初始化之后直接尝试登录,但是FB.login通过显式用户交互(例如,从链接)触发更好的做法,否则浏览器可能阻止弹出.

<div id="fb-root"></div>
<script>
    window.fbAsyncInit = function() {
        FB.init({
            appId: 'your app id', 
            cookie: true, 
            xfbml: true,
            oauth: true
        });

        FB.login(function(response) {
            if (response.authResponse) {
                // response will contain, among other things, the users id and accesstoken
                FB.api('/me', function(response) {
                    // response will contain the user data you have permissions for
                });
            } else {
                // User cancelled login or did not fully authorize.
            }
        }, {scope: 'LIST,YOUR,PERMISSIONS'});
    };
    (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
                '//connect.facebook.net/en_US/all.js';
                document.getElementById('fb-root').appendChild(e);
    }());
</script>
Run Code Online (Sandbox Code Playgroud)

编辑纠正@ifaour指出的错误.

  • 您需要将`oauth`参数设置为`true`. (3认同)