Facebook 脸谱网:“;(#2635)您正在调用已弃用版本的Ads API。请更新至最新版本:v7.0。”;

Facebook 脸谱网:“;(#2635)您正在调用已弃用版本的Ads API。请更新至最新版本:v7.0。”;,facebook,facebook-graph-api,facebook-javascript-sdk,Facebook,Facebook Graph Api,Facebook Javascript Sdk,尝试呼叫时: FB.api(`/${authResponse.userID}/adaccounts`, accountsResponse => { console.log('accountsResponse ', accountsResponse); }); 根据文档,我们得到了以下响应: error: code: 2635 fbtrace_id: "AtKWTpvIoYCi5YXpg-2Xr0g" messag

尝试呼叫时:

        FB.api(`/${authResponse.userID}/adaccounts`, accountsResponse => {
            console.log('accountsResponse ', accountsResponse);
        });
根据文档,我们得到了以下响应:

error:
code: 2635
fbtrace_id: "AtKWTpvIoYCi5YXpg-2Xr0g"
message: "(#2635) You are calling a deprecated version of the Ads API. Please update to the latest version: v7.0."
type: "OAuthException"
问题是,我们使用的是v8.0版本,与此错误消息中包含的信息相反,它是最新版本

下面是加载SDK的方式(使用Nuxt):

所以这有点奇怪,但我们根本无法让建议的“sdk.js”工作,至少这会加载并允许我们成功调用FB.login()

下面是我们初始化的方式:

                        FB.init({
                            appId,
                            autoLogAppEvents: true,
                            xfbml: true,
                            version: 'v8.0',
                        });

将此版本号更改为“v7.0”没有任何效果。

因此,似乎在head()中加载sdk.js而不是使用标记会让每个人都感到困惑。因为这让Vue不高兴,我们不得不找到另一个解决办法,我们做到了:


但是我们根本无法让建议的“sdk.js”工作——为什么不呢,你遇到了什么问题?只是随意切换到一个过时的版本听起来并不是一件聪明的事情。正如上面的评论所述:由于“init not called with valid version”,我们没有使用过时的版本,所以将“sdk.js”替换为“all.js”。版本被指定为8.0。我是说SDK版本已经过时了
all.js
在很久以前已经被
skd.js
所“取代”。他们保留了旧版本,这样就不会破坏嵌入它的网站的功能——但对于任何当前的开发,都应该坚持使用新版本。对吧。出于未知原因,使用Nuxt的head()函数动态加载这个sdk.js失败了,但奇怪的是,加载all.js工作正常,使用all.js调用FB.init()、FB.login()、FB.getLoginStatus()、FB.logout()、FB.api()、FB.api(userId)都很好。。。。只是不是FB.api(
userID/adaccounts
),它抛出了上面提到的极其混乱和完全错误的错误消息。
                        FB.init({
                            appId,
                            autoLogAppEvents: true,
                            xfbml: true,
                            version: 'v8.0',
                        });
mounted() {
        const fbDiv = document.createElement('div');
        fbDiv.id = 'fb-root';
        document.body.appendChild(fbDiv);
        // run after sdk is loaded
        window.fbAsyncInit = () => {
            FB.init({
                appId,
                autoLogAppEvents: true,
                xfbml: true,
                version: 'v8.0',
            });
        };
        // inject sdk.js
        (function (d, script) {
            script = d.createElement('script');
            script.type = 'text/javascript';
            script.async = true;
            script.src = `https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v8.0&appId=${fbAppId}&autoLogAppEvents=1`;
            d.getElementsByTagName('head')[0].appendChild(script);
        })(document);
    }