2017-10-09 3 views
0

J'utilise cette requête API pour aller chercher tous les centres FITNESS_RECREATION en utilisant Facebook places api.Comment mettre un filtre dans facebook places graphique api

https://graph.facebook.com/search?type=place&q=FITNESS_RECREATION&fields=name,location&limit=5&access_token=API_ID|SECRET_KEY

Je suis en train de faire deux choses: 1) filtrer et d'obtenir la demande de quel pays = Malaisie. 2) Pour obtenir une liste d'au moins 5000 retours. Facebook semble restreindre la réponse à un maximum de 100. Y at-il une solution de contournement pour cela.

C'est une réponse de l'échantillon:

{ 
    "data": [ 
     { 
     "name": "Recreation Fitness", 
     "location": { 
      "city": "Long Beach", 
      "country": "United States", 
      "latitude": 33.833224817855, 
      "longitude": -118.1849527359, 
      "state": "CA", 
      "street": "4234 Atlantic Ave", 
      "zip": "90807" 
     }, 
     "id": "420888681274648" 
     }, 
     { 
     "name": "Extreme Fitness- West Coast Recreation", 
     "location": { 
      "city": "Singapore", 
      "country": "Singapore", 
      "latitude": 1.30975, 
      "longitude": 103.764183, 
      "street": "12 West Coast Walk \u0040 West Coast Recreation", 
      "zip": "127157" 
     }, 
     "id": "982344108463873" 
     }, 
     { 
     "name": "TMP Fitness Sports and Recreation Club", 
     "location": { 
      "city": "Singapore", 
      "country": "Singapore", 
      "latitude": 1.3196699, 
      "longitude": 103.84262, 
      "street": "55 Newton Road, #05-02 Revenue House", 
      "zip": "307987" 
     }, 
     "id": "336128976479984" 
     }, 
     { 
     "name": "Fitness First Platinum Trinoma", 
     "location": { 
      "city": "Quezon City", 
      "country": "Philippines", 
      "latitude": 14.654392396144, 
      "located_in": "322295778137", 
      "longitude": 121.03377838573, 
      "street": "North Ave" 
     }, 
     "id": "516897225075490" 
     }, 
     { 
     "name": "Launceston PCYC Weight Gym, Fitness & Recreation Centre", 
     "location": { 
      "city": "Newstead", 
      "country": "Australia", 
      "latitude": -41.44732, 
      "longitude": 147.15653, 
      "state": "TAS", 
      "street": "146 Abbott St", 
      "zip": "7250" 
     }, 
     "id": "169928146489153" 
     } 
    ], 
    "paging": { 
     "cursors": { 
     "after": "NAZDZD" 
     }, 
     "next": "https://graph.facebook.com/v2.10/search?access_token=737434766443796\u00257Cb10e3ea49284dc815b25910e6fb39aea&pretty=1&fields=name\u00252Clocation&q=FITNESS_RECREATION&type=place&limit=5&after=NAZDZD" 
    } 
} 
+0

a essayé d'utiliser ce format pour filtrer pays = Malaisie: https://graph.facebook.com/search?type=place&q=FITNESS_RECREATION&fields=name,location{country=Malaysia}&limit=5000&access_token=APP_ID|secret_key Cependant, a obtenu l'erreur: { "erreur": { "message": "(# 100) essayé d'accéder au champ non existant (pays = Malaisie) le type de noeud (emplacement)", "type" : "OAuthException", "code": 100, "fbtrace_id": "DfofQreXq/8" } } –

Répondre

1

Je suis en train de faire deux choses: 1) filtrer et d'obtenir la demande de quel pays = Malaisie.

Impossible.

Vous pouvez rechercher des lieux autour d'un emplacement GEO donnée (en utilisant center et distance paramètres, voir https://developers.facebook.com/docs/graph-api/using-graph-api/#search)

Ou vous pouvez ajouter Malaysia au name que vous recherchez, pour obtenir des endroits qui ont en fait le pays leur nom.

Plus que cela - pas possible. Vous devriez faire un filtrage supplémentaire de votre côté.

2) Pour obtenir une liste d'au moins 5000 retours. Facebook semble restreindre la réponse à un maximum de 100. Y at-il une solution de contournement pour cela.

Non, il n'y a pas, c'est une limitation délibérée. Vous devez utiliser la pagination pour obtenir plus de résultats. https://developers.facebook.com/docs/graph-api/using-graph-api/#paging


Juste Pour votre information, dans le cas qui ne devrait pas être clair: Facebook fournit le critère de recherche, afin que votre application peut effectuer une recherche dans le nom de l'utilisateur, pour une information spécifique dont ils auraient besoin à ce temps. Il n'est pas conçu comme un moyen pour une application d'obtenir/"télécharger" un ensemble complet de données pour un terme de recherche donné à utiliser à ses propres fins.