2015-03-23 1 views
1

Я пытаюсь добавить 2 правила апите вызов, как показано ниже:Facebook Ads API - как добавить несколько правил к пользовательской аудитории апите вызов в PHP

$parameters  =  "name=TEST-Registered-CA&"; 
$parameters  .=  "subtype=WEBSITE&"; 
$parameters  .=  "retention_days=180&"; 
$parameters  .=  'rule={"and":[{"url":{"i_contains":"thankyou.asp"}},{"url":{"i_contains":"HotelVenueState=CA"}}]}'; 

https://graph.facebook.com/v2.2/act_12345/customaudiences?access_token=123456&$parameters; 

Когда я пытаюсь запустить выше на Facebook Graph Проводник, он дает следующее сообщение об ошибке «(# 2654) Invalid JSON для правила: Поставляется строка для правила не действует JSON» Rerence гиперссылка (enter link description here

Может ли одно сказать мне, что я делаю неправильно с JSON

?

ответ

0

Вы должны убедиться, что вы всегда правильно URL-кодируете параметры запроса. Ручное построение URL путем объединения строк часто приводит к URL-адресам, которые не будут правильно проанализированы.

Вот как можно построить над URL:

<?php 

$parameters = array(
    'access_token' => '123456', 
    'name' => 'TEST-Registered-CA', 
    'subtype' => 'WEBSITE', 
    'retention_days' => '180', 
    'rule' => '{"and":[{"url":{"i_contains":"thankyou.asp"}},{"url":{"i_contains":"HotelVenueState=CA"}}]}' 
); 

$url = 'https://graph.facebook.com/v2.2/act_12345/customaudiences?'.http_build_query($parameters, null, '&'); 
+0

Спасибо Давид за вашу помощь, но это другой вопрос, и это было даже ошибка, и я спросил из facebook разработчиков напрямую, и они сказали мне точное решение для этого, который я собираюсь ответьте мне в ближайшее время. –

+0

Спасибо за обновление Naveed. Мне было бы интересно узнать, что это за решение. – daviddoran

+0

David, я разместил решение, и вы можете попробовать это, и он будет работать наверняка. –

0

В последнем обновлении в facebook v2.3 они добавили еще один параметр с теми вызовами, которые представляют собой (метод = пост), и когда я добавил это и это сработало для меня. поэтому код должен быть, как этот

$parameters  =  "method=post&"; 
$parameters  =  "name=TEST-Registered-CA&"; 
$parameters  .=  "subtype=WEBSITE&"; 
$parameters  .=  "retention_days=180&"; 
$parameters  .=  'rule={"and":[{"url":{"i_contains":"thankyou.asp"}},{"url":{"i_contains":"HotelVenueState=CA"}}]}'; 

https://graph.facebook.com/v2.2/act_12345/customaudiences?access_token=123456&$parameters;