-1

我向您发送此消息是因为我的竞赛应用程序中的 subscribe 的 edge.remove 功能有一点问题。

在我的应用程序中,我想听按钮上的喜欢和不喜欢,以便将其保存在数据库中以建立比赛排名。但是我的不喜欢功能有问题,它扭曲了我的排名。当我喜欢图像时,它可以工作,但是当我不喜欢以前的喜欢按钮时,它会返回一个名为“错误”的链接(红色)女巫链接出现以下错误:

“点赞页面时出错。如果您是页面所有者,请尝试通过 Facebook 开发网站 ( https://developers.facebook.com/tools/lint/ )上的 linter 运行您的页面并修复任何错误。” .

在 firebug 中,Facebook 通过 url POST http://www.facebook.com/ajax/connect/external_node_connect.php?__a=1调用返回以下代码:

对于 (;;);{"__ar":1,"payload":{"requires_login":false,"success":false,"already_connected" :false,"is_admin":false,"show_error":true,"error_info ": {"brief":"发生错误。","full":"点赞页面时出错。如果您是页面所有者,请尝试通过 Facebook devsite 上的 linter 运行您的页面(https:// /developers.facebook.com/tools/lint/) 并修复任何错误。", "errorUri":"/connect/connect_to_node_error.php?title=An+error+occurred.&body=There+was+an+error+like +the+page.+If+you+are+the+page+owner\u00252C+请+try+running+your+page+through+the+linter+on+the+Facebook+devsite+\u002528https\u00253A\u00252F\ u00252Fdevelopers.facebook。com\u00252Ftools\u00252Flint\u00252F\u002529+and+fixing+any+errors.&hash=AQBOwKwXHdofUaSJ"}}}

我的代码是:

    window.fbAsyncInit = function() {

    FB.init({
            appId  : '<?= APP_ID; ?>',
            status : true, 
            cookie : true, 
            xfbml  : true  
           }); 

           FB.Canvas.setAutoResize();

           FB.Event.subscribe('edge.create',
                function(href, widget) {
                    alert(href);
                    //$('a').bind('click',false);
                    //liketoggle(href);
                }
            );

            FB.Event.subscribe('edge.remove',
                function(href, widget) {
                    alert('href');
                    //$('a').bind('click',false);
                    //liketoggle(href);
                }
            );

        };

        (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
            js = d.createElement(s); js.id = id;
            js.src = "//connect.facebook.net/fr_FR/all.js#xfbml=1&appId=<?= APP_ID; ?>";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
4

1 回答 1

0

您不是向该函数传递了太多参数吗?应该只有一个。

下面一个对我有用:

FB.Event.subscribe('edge.remove',
    function(response) {
        alert('You unliked the URL: ' + response);
    }
);

这是文档:

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

于 2012-05-10T14:21:52.857 回答