0

您好,我使用 Action-script 3 在 Flash 中开发了一个 Facebook 应用程序。该应用程序运行良好。我用 JavaScript 开发了 Facebook 登录和身份验证。问题是用户没有登录到 Facebook 应用程序工作正常,提供用户登录面板和应用程序权限面板并在用户墙上发布想要的东西,但如果用户已经登录,那么 JavaScript 不会要求 Facebook应用程序权限,因此该应用程序不会发布在用户墙上。我的 JavaScript 代码是

<script type="text/javascript">
    var APP_ID = "xxxxxxxxxxxxxxx";
    var REDIRECT_URI = "http://apps.facebook.com/engel-tanimiyorum/";
    var PERMS = 'publish_stream , email, user_birthday'; //comma separated list of extended permissions

    function init()
    {
        FB.init({appId:APP_ID, status: true, cookie: true, oauth: true});
        FB.getLoginStatus(handleLoginStatus);
    }

    function handleLoginStatus(response)
    {
        if (response.authResponse && response.status=="connected")
        {

            //Show the SWF
            $('#ConnectDemo').append('<h1>You need at least Flash Player 9.0 to view this page.</h1>');
            swfobject.embedSWF("index.swf",
                "ConnectDemo", "803", "516", "9.0", null, null, null, {name:"ConnectDemo"});

        }
        else
        {
            var params = window.location.toString().slice(window.location.toString().indexOf('?'));
            top.location = 'http://graph.facebook.com/oauth/authorize?client_id='
                +APP_ID
                +'&scope='+PERMS
                +'&redirect_uri=' + REDIRECT_URI
                + params;



        }


    }
    $(init);
</script>

您的快速反应将是高度赞赏的问候

4

1 回答 1

0

我不知道这是否有帮助。但不是你的 var PERMS = 'publish_stream , email, user_birthday';

我确实相信它应该是一个数组,然后你会列出你的权限。
它对我有用,所以我认为它应该是这样的:

public var PERMS:Array = ["publish_stream","email","user_birthday"];

此外,不公开您的变量也可能是问题所在。

另外,据我所知,您没有任何按钮或文本输入?

如果没有,您需要创建这些。然后有一个点击处理程序,当文本输入中有文本时,它将激活一个点击处理程序,然后将转到提交后处理程序,然后转到一个获取状态处理程序,该处理程序将向您显示您创建的新状态。我可能说这一切都错了。毕竟,我没有在我的应用程序中使用 Java。但在我看来,你会这样做是合乎逻辑的。尝试我的第一个建议,然后回复我。如果您愿意,请通过 Shandan_Spencer@live.com 给我发电子邮件,我可以为您提供更多帮助。

于 2012-07-03T17:06:21.870 回答