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);
}