0

与えられた範囲内のFacebookの場所のリストを受け取る必要があります(NEとWSの座標で定義されています)

javascriptアプリケーションから次のfql.queryを呼び出します。

 FB.api({
    method: "fql.query",

    query: "SELECT name,description,geometry,latitude,longitude,checkin_count,display_subtext FROM place WHERE latitude < '" + bounds.getNorthEast().lat() + "' and longitude < '" + bounds.getNorthEast().lng() + "' and latitude > '" +  bounds.getSouthWest().lat() + "' and longitude > '" +  bounds.getSouthWest().lng() +"'"
  },
  function(response) {
     /// 
 }

しかし、エラー604を受け取ります

Your statement is not indexable. The WHERE clause must contain an indexable column. Such columns are marked with * in the tables linked from http://developers.facebook.com/docs/reference/fql 

私が見る限り、placeテーブルhttp://developers.facebook.com/docs/reference/fql/place/の唯一のインデックス付き列はですpage_id。しかしpage_id、他のテーブルからこれを取得する手段はありません。

与えられた範囲内でFacebookの場所を受け取る(おそらくもっと簡単な)方法はありますか?

4

2 に答える 2

2

これらの列にはインデックスが付けられていないため、FQLテーブルを使用できないという点で正しいです。
ただし、特定の場所内の場所を検索するためのGraphAPI呼び出しを試すことができます。
例-https://graph.facebook.com/search?type= place¢er=37.76,-122.427&distance= 1000&access_token= ...
これはこちらのGraphAPIドキュメントからのものです-https: //developers.facebook.com/docs/ reference / api /

于 2012-08-28T23:01:57.593 に答える
0

私はfqlでそれを作りました、私はこの答えに触発されました:

Facebookの場所:距離による注文結果

範囲内ではなく、中心点からの距離内で検索しましたが、fql.query言語を使用しました。

    FB.api({
      method: "fql.query",
      query: "SELECT page_id, name, description, latitude, longitude, checkin_count, distance(latitude, longitude, '"  + centerlat + "', '" + centerlon + "') FROM place WHERE distance(latitude, longitude, '" + centerlat + "', '" + centerlon + "') < '" + distance +"'" 
      },
      function(response) {

      });

そしてそれは私が必要とすることを正確に行います-私が使用できる場所のリストを私に与えます。

于 2012-08-29T09:45:58.757 に答える