2012-04-16 12 views
3

に設定されているすべてのデータの応答を行います。FacebookのグラフAPIは、制限は、私はFacebookのグラフAPIエクスプローラ内のデータを照会しています20

access_token="SECRET" 
GET https://graph.facebook.com/me/home?limit=20&until=1334555920&fields=id 

結果:あるので

{ 
    "data": [ 
    ] 
} 

私はショックを受けました私の "家"の多くのフィード。

次に、制限を100に設定しようとしましたが、フィードリストがあります。

ここでは何が起こっていますか? "limit"パラメータはグラフapiの結果に影響しますか?


制限を25に増やしてもう一度クエリしようとしましたが、1つのフィードがあります。

"limit"と "until"の関係はどうですか?

答えて

3

FacebookのAPIは、あなたがアクセスしようとしているデータのために少し奇妙なことがあります。この質問にはいくつかの部分があります。 Limits in the Graph API:昨年からこのブログの記事で説明され、データが返されたとき

制限

制限が適用されますが、前の権限およびアクセスコントロールが生成されます。

権限

はさらに重要なのは、あなたが可能なすべてのFBの許可を得て自分自身にトークンを与える場合でも、あなたはまだあなたが作成したすべてのものにアクセスすることはできません。 Friendのフィードに何かを投稿しても、そのフィードはPublic privacyに設定されていないとします。その友だちのフィードに対するあなたのトークンのクエリは、決してデータを返すことはありません(少なくとも、少なくとも1年前のケースでした)。

API自体、私は去年それで働いていたときに私がグラフAPIで見つかった最も素晴らしいのバグの

一つは、ページングを処理する方法です。 Graph APIでは、limit、offset、since/untilの3つのフィルタを使用できます。どこかFacebookは、ページングの可能な限り、since/until日付を排他的に使用することを推奨しています。時間をかけて分解するために使用次のクエリは、実用的な1に、あなたは理論的な基準でその対オフセットを行うだろう理由として議論を無視:

// This obviously isn't valid as written, but you the params change as described 
limit=fixed-value&offset=programmatic-increase&since=some-fixed-date-here 

理由:日付範囲とオフセットがとうまく動作しません。お互い。たとえば、次のような初期クエリを作成したとします。

// My example query 
limit=20&since=1334555920 

--> {#1,#2, ... #20} 

もちろん、もっとデータをページしたいと思うでしょう。私は考え出したことはありません

// My example query 
limit=20&since=1334555920&offset=20 

---> {#10, #11 ... #25} 

:結果は(私は正確なパターンを覚えていないことができますが、トップnは、繰り返しになり、結果のリストが同様n/2か何かで切り捨てられます)このようなものになるだろうなぜそれが起こったのですか、最終的にはクエリは何も返されず、50〜100のユニークな値しか得られません。ただし、日付のみを使用してページングした場合、データが表示されている間は続行できます。

これはバグであり、これはしばらく前のことです。ここでの主な教訓は、このバグを発見しても、クエリを変更してもまったく同じものにならないことは決してありませんでした。(特定の日付範囲は、10〜30の投稿に基づいています。結果は全く異なっていた。

関連する問題