2016-11-22 4 views
1

Я пытаюсь использовать API отчетов https://developer.yahoo.com/gemini/guide/reporting/cubes/#performance-statsYahoo Gemini сообщение об ошибке и API

Но когда я пытаюсь запросить URI для создания отчета - я получаю ответ 400 с сообщением

{"errors":[{"errIndex":-1,"code":"E40000_INVALID_INPUT","message":"Entity (publisher or advertiser id) not available","description":""}],"response":null,"timestamp":"2016-11-22 15:25:24"} 

данных, передаваемых в API Конечная точка:

$data = [ 
    'cube' => 'performance_stats', 
    'fields' => [ 
     ['field'=> 'Ad ID'], 
     ['field'=> 'Advertiser ID'], 
     ['field'=> 'Day'], 
     ['field'=> 'Spend'], 
    ], 
    'filters' => [ 
     ['field' => 'Advertiser ID', 'operator' => '=', 'value' => xxxxx], 
     ['field' => 'Campaign ID', 'operator' => 'IN', 'values' => [xxxxx]], 
     ['field' => 'Day', 'operator' => 'between', 'from' => '2016-11-20', 'to' => '2016-11-21'], 
    ] 
]; 

Кажется, что все в порядке, в основном скопировано из документов.

Рекламодатель, используемый в фильтре, существует. Я могу запросить его по адресу https://api.gemini.yahoo.com/v2/rest/advertiser/xxxxx, кампания - также.

Я нашел несколько дискуссий на форуме, но они не очень помогают:

1. https://forums.developer.yahoo.net/discussion/7009/gemini-reporting-help

2. https://forums.developer.yahoo.net/discussion/7091/gemini-reports-api-no-longer-working-as-expected

3. https://forums.developer.yahoo.net/discussion/7347/yahoo-gemini-custom-reporting

ли кто-нибудь сталкивался с таким вопросом ?

+0

Также, имея эту проблему, вам удалось решить эту проблему? – RootK

+0

использование json_encode ($ data) –

+0

в js case использование JSON.stringify (данные) –

ответ

1

Вот решение: -

$access_token = "YOUR_ACCESS_TOKEN"; 
    $headers = array('Authorization: Bearer ' . $access_token, 'Accept: application/json', 'Content-Type: application/json'); 
    $postdata = [ 
    'cube' => 'performance_stats', 
    'fields' => [ 
     ['field'=> 'Ad ID'], 
     ['field'=> 'Advertiser ID'], 
     ['field'=> 'Day'], 
     ['field'=> 'Spend'], 
    ], 
    'filters' => [ 
     ['field' => 'Advertiser ID', 'operator' => '=', 'value' => xxxxx], 
     ['field' => 'Campaign ID', 'operator' => 'IN', 'values' => [xxxxx]], 
     ['field' => 'Day', 'operator' => 'between', 'from' => '2016-11-20', 'to' => '2016-11-21'], 
    ] 
]; 
    $curl = curl_init("https://api.gemini.yahoo.com/v2/rest/reports/custom/"); 
    curl_setopt($curl, CURLOPT_POST, true); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($postdata)); 
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($curl, CURLOPT_HEADER, false); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($curl); 

Прочитайте документ здесь https://developer.yahoo.com/gemini/guide/reporting/

0

Согласно документу, ответ: и фильтры «Рекламодатель ID», «День» требуется в каждом запросе отчета ,

Смежные вопросы