有點不可思議,但我在最近幾個小時嘗試了這一點,結果表明,當您使用的是Sandbox帳戶的訪問令牌時,不會搜索城市。
我試着用真正的Facebook廣告帳戶的訪問令牌,它的作品相同的API端點。
爲如何工作的,這裏是一些代碼,這可能有助於未來的讀者:
//Include Facebook SDK classes
//use FacebookAds\Api;
//use FacebookAds\ApiRequest;
//use FacebookAds\Object\TargetingSearch;
//use FacebookAds\Object\Search\TargetingSearchTypes;
function searcher() {
$fbutils = new FacebookUtils(16);
$account_id = $fbutils->getAccountID();
$accessToken = $fbutils->getAccessToken($account_id);
Api::init(fb_app_id, fb_app_secret, $accessToken);
$result = TargetingSearch::search(
TargetingSearchTypes::GEOLOCATION, null, 'dub', array(
'location_types' => array('city'),
));
$fb = new Facebook([
'app_id' => fb_app_id,
'app_secret' => fb_app_secret,
'default_graph_version' => 'v2.10',
'default_access_token' => $accessToken
]);
$fb = $result;
$objects = $result->getArrayCopy();
$objects_arr = array();
do {
foreach ($objects as $object) {
$objects_arr[] = $object->getData();
}
} while ($objects = $fb->next($objects));
echo "<pre>";
print_r($objects_arr);
exit;
}
注:與您的數據替換常量和變量,這應該用於搜索城市工作,並使用分頁和打印結果很漂亮。
同樣在這裏,我可以得到一個國家的列表,但空的響應城市 –
沒問題,有點更新,我看到,即使是業務經理用戶界面無法找到或匹配我的沙箱帳戶的城市,但它確實有效對於真正的Facebook帳戶,不知道爲什麼,但通過api即使使用真實賬戶也沒有反應 –
好了,爲真實賬戶工作 –