【问题标题】:FB Development - How to search facebook cities by their "key"FB Development - 如何通过“key”搜索 facebook 城市
【发布时间】:2012-01-02 23:55:57
【问题描述】:

情况:

我目前正在开发一个用户可以搜索城市的项目。为了得到结果,我通过 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 开发文档,但还没有找到任何东西。

【问题讨论】:

    标签: facebook charts key city subtext


    【解决方案1】:

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

    另一种方法是搜索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

    【讨论】:

    • 我知道距离这个父帖子已经快 5 年了,当我看到你能得到什么样的输出时,我想哭。今天我们只能得到带有两个键{ "name": "Sundsvall, Sweden", "id": "110103992352737" }, 的对象,之后我必须再次调用以获取更多信息。呸!为什么人们确实从这个端点中删除了这样的信息。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      use FacebookAds\Object\TargetingSearch;
      use FacebookAds\Object\Search\TargetingSearchTypes;
      
      $result = TargetingSearch::search(
        TargetingSearchTypes::GEOLOCATIONMETA,
        null,
        null,
        array(
          'cities' => array(<city_key>),
        ));
      

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

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

      【讨论】:

      • 这使用了业务 PHP SDK。在文档中,它也显示了 curl 的方式。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多