有点不可思议,但我在最近几个小时尝试了这一点,结果表明,当您使用的是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即使使用真实账户也没有反应 –
好了,为真实账户工作 –