使用FB.ui进行“apprequest”和“feed” - JS错误 - c未定义

时间:2011-07-18 09:28:11

标签: javascript facebook feed facebook-ui

我开发了两个带FB.ui()次调用的应用程序来发送应用请求,并要求使用“feed”参数发布状态更新。它工作好几个月,但在过去一周我遇到了错误:

  

c未定义第18行:   FB.provide( '大教堂',{containsCss:功能...(oldonload);}其他   oldonload();};})();文件:all.js

我从文件all.js导入以使用网址中的FB对象:http://connect.facebook.net/fr_FR/all.js(我也试过http://connect.facebook.net/en_US/all.js

这是导致错误的代码部分:

window.addEvent('domready', function() {

    if(jsonRedirection.redirect == false) {

        FB.init({
          appId  : FBappId,
          status : true, // check login status
          cookie : true, // enable cookies to allow the server to access the session
          xfbml  : true  // parse XFBML
        });

    } 

});

function addFriends()
{
    FB.ui({
        method: 'apprequests',
        message: 'Test'
        },
        function(response) {
            if(response != null) {
                alert('ok');
            }
        }
    );
}

在我调用addFriends函数之前,我检查了我的appId并且我有“fb-root”div ...

3 个答案:

答案 0 :(得分:1)

“c未定义” - 这是由于mootools冲突而发生的。 在未压缩的mootools文件中,有一个函数“Function.implement({”。你可以通过隐藏它来解决这个问题。

让我知道,如果你得到这个工作。

确切地说。 使用In,Function.implement({ 会有一个“创建:函数(选项){”。 只需通过“创建”重命名“创建”即可。即,制作C - 大写字母。 我希望,这将解决问题。

答案 1 :(得分:1)

问题在于函数原型..

Function.implement({
extend: function(properties){
    for (var property in properties) this[property] = properties[property];
    return this;
},

create: function(options){ 

和FB SDK功能:

create:function(c,h){var e=window.FB,d=c?c.split('.'):[],a=d.length;for(var b=0;b<a;b++){var g=d[b];var f=e[g];if(!f){f=(h&&b+1==a)?h:{};e[g]=f;}e=f;}return e;}

解决方案:在mootools中,将“create”重命名为“create2”,然后将所有“create(”by“create2(”

)替换为

它太可怕..但是,有效..

答案 2 :(得分:0)

MooTools 1.4.3版解决了这个问题 - 您可以从Download MooTools 1.4.3下载