Facebook Marketing API:您正在调用广告API的弃用版本

问题描述 投票:1回答:2

在尝试使用Facebook Marketing 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());


?>

php facebook
2个回答
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


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());
?>
© www.soinside.com 2019 - 2024. All rights reserved.