1

Facebookアプリを開発していますが、ユーザーから大量のデータを取得する必要があります。Facebookの限界が気になります。クエリを1つずつ送信できません。すぐに、エラー4「APITooManyCalls」が発生します。したがって、クエリをマルチクエリにグループ化するか、バッチで送信する場合、より良いアプローチは何でしょうか。ところで、バッチリクエストではマルチクエリを使用する必要があります。だからここに例があります:)

USER_AとUSER_Bが友達であるとすると、1つのアクセストークンで両方にアクセスできます。

multiquery for USER_A:
"Q0":"SELECT post_id FROM stream WHERE source_id=<USER_A>",
"Q1":"SELECT id FROM comment WHERE post_id IN (SELECT post_id FROM #Q0)"

multiquery for USER_B
"Q2":"SELECT post_id FROM stream WHERE source_id=<USER_B>",
"Q3":"SELECT id FROM comment WHERE post_id IN (SELECT post_id FROM #Q2)"

では、これら2つのマルチクエリを1つの大きなマルチクエリにグループ化するか、バッチリクエストに入れるという、より良いアプローチは何でしょうか。その場合、Facebookはそれを1つのAPI呼び出しとしてカウントしますか?Facebookには、1日あたり1億回のAPI呼び出しなどの制限があります。したがって、2つのマルチクエリをバッチ/より大きなマルチクエリで送信した場合、Facebookはそれを1つのAPI呼び出しとしてカウントしますか?

編集:バッチリクエストとは、これを意味しますhttps://developers.facebook.com/docs/reference/api/batch/

FQLとGraphAPIのどちらを使用すべきかを尋ねているのではなく、マルチクエリをバッチで送信することと、1つの大きなマルチクエリとして送信することの間に違いがあるかどうかを知りたいのです。

4

1 に答える 1

2

私の経験では、 1つですべてを実行できる場合access_token、大規模なFQLマルチクエリは、バッチリクエストよりも迅速に結果を返します。

また、クエリの例を見ると、次の要素を組み合わせることでクエリの数を減らすことができます。

'User_A_Comments': 
  "SELECT id, post_id FROM comment WHERE post_id IN (SELECT post_id FROM 
  (SELECT post_id FROM stream WHERE source_id=<USER_A>) )"

バッチリクエストがもたらす利点は、複数のアクセストークンを使用してこの情報を一度に取得できることです。

于 2013-01-18T15:04:26.060 に答える