尝试使用Facebook营销API时,我收到错误消息"您正在调用广告API的弃用版本。请更新到最新版本:v2.6。'即使在所有代码中我使用的是2.6版本。
这是我的代码:(我在#是的地方得到了正确的值。
<!DOCTYPE HTML>
<html lang = "en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> Home </title>
</head>
<body>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '#',
xfbml : true,
version : 'v2.6'
});
};
(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/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<?php
require_once('vendor/autoload.php');
use FacebookAds\Api;
use FacebookAds\Object\AdUser;
use FacebookAds\Object\AdAccount;
// Initialize a new Session and instanciate an Api object
Api::init("#", "#", "#");
// The Api object is now available trough singleton
$api = Api::instance();
$me = new AdUser('me');
$my_adaccount = $me->getAdAccounts()->current();
print_r($my_adaccount->getData());
?>
答案 0 :(得分:2)
根据您的一条评论,您正在使用
facebook/php-ads-sdk
版本2.5。正如错误提到的那样,你应该从composer更新到2.6。
在项目的根目录下,更改composer.json,其中包含:
{
"require": {
"facebook/php-ads-sdk": "2.5.*"
}
}
到
{
"require": {
"facebook/php-ads-sdk": "2.6.*"
}
}
通过删除您的供应商文件夹并重新运行$ composer install
并使用更新的依赖项下载它来重新安装您的依赖项。
您的JavaScript中包含v2.6
,但这不会影响PHP的任何操作。
Github上的README上的文档似乎已过时,但there is an issue hinting that updating to 2.6 should solve the problem。
答案 1 :(得分:0)
您还可以在API类(Api.php)中使用setDefaultGraphVersion()方法来设置要调用的api版本。
<?php
require_once('vendor/autoload.php');
use FacebookAds\Api;
use FacebookAds\Object\AdUser;
use FacebookAds\Object\AdAccount;
// Initialize a new Session and instanciate an Api object
Api::init("#", "#", "#");
// The Api object is now available trough singleton
$api = Api::instance();
$api->setDefaultGraphVersion("2.6");
$me = new AdUser('me');
$my_adaccount = $me->getAdAccounts()->current();
print_r($my_adaccount->getData());
?>