6

情况:

我目前正在开发一个用户可以搜索城市的项目。为了得到结果,我通过 ajax 使用这个 url:

https://graph.facebook.com/search?q=**sundsvall**&type=adcity&country_list=**se**&access_token=

当我像这样向 facebook 发送请求时,我得到这样的响应:

{
   "data": [
      {
         "name": "Sundsvall, Sweden",
         "key": 220260543,
         "subtext": "Vasternorrlands Lan, Sweden"
      },
      {
         "name": "Sundsvallen, Sweden",
         "key": 220260542,
         "subtext": "Jamtlands Lan, Sweden"
      }
   ]
}

从该响应中,我得到密钥并将其存储在我的数据库表中。

我的问题

我也想相反,通过提供“密钥”来获取“名称”和“潜台词”。你知道,“给我 key = 220260543 的信息”。

我知道我可以将名称和潜文本存储在我的数据库中,但我更喜欢只保留密钥。

任何人都知道这是否可能?如何?链接?我已经阅读了 facebook 开发文档,但还没有找到任何东西。

4

3 回答 3

1

如果您不需要“subtext”/region,并且您正在发送完整的城市名称(不在某些自动完成上下文中使用):

另一种方法是搜索places(包括城市)而不是adcities. 这将为该位置生成一个 Graph ID,然后可以将其插入到 graph.facebook.com。

示例查询:

https://graph.facebook.com/search?q=sundsvall%20sweden&type=place&access_token=[TOKEN]

这将产生:

{
   "data": [
      {
         "name": "Sundsvall, Sweden",
         "category": "City",
         "location": {
            "latitude": 62.3833,
            "longitude": 17.3
         },
         "id": "110103992352737"
      },
      {
         "name": "Ladyland of Sweden",
         "category": "Local business",
         "location": {
            "street": "Thulegatan 12",
            "city": "Sundsvall",
            "country": "Sweden",
            "zip": "85232",
            "latitude": 62.389481631972,
            "longitude": 17.303409784226
         },
         "id": "170645612982568"
      },
      ...

尽管 Ladyland 听起来很棒,但您可以丢弃它以及响应中与“类别”:“城市”不匹配的任何其他内容。遗憾的是,我不确定是否有办法提前将结果限制在城市中,但对于这种类型的查询,似乎城市的排序始终很高,因此“查询然后过滤”方法应该有效。

Sundsvall 的图形 ID,来自上述结果:

https://graph.facebook.com/110103992352737

于 2012-01-03T03:24:26.590 回答
0

根据 Facebook 的文档,您的查询仅用于在广告 API 中自动完成。密钥也仅特定于一个国家/地区。他们的文档中没有任何内容向我们展示开发人员如何从钥匙倒退到城市。对于具有关键列的城市,似乎没有 FQL 表。而且图表仍然是光秃秃的,甚至更少。

于 2012-01-03T01:28:33.900 回答
0

您可以通过请求这样的几何数据来做到这一点:

use FacebookAds\Object\TargetingSearch;
use FacebookAds\Object\Search\TargetingSearchTypes;

$result = TargetingSearch::search(
  TargetingSearchTypes::GEOLOCATIONMETA,
  null,
  null,
  array(
    'cities' => array(<city_key>),
  ));

如果键“城市”处返回的数组不为空,那么您有一个与该键匹配的城市:)

几何数据的文档: https ://developers.facebook.com/docs/marketing-api/audiences/reference/targeting-search/#geo-meta

于 2020-01-22T13:48:29.357 回答