2

Facebook API に少し問題があります。

次のようなページのストリームを取得するために、非常に単純な FQL リクエストを実行しています。

SELECT post_id, type, likes, comments FROM stream WHERE source_id = X

それはうまく機能します。しかし、コカコーラやスターバックスなどの「巨大なページ」で同じリクエストを行うと、すべてのストリーム投稿の「タイプ」、「いいね数」、「コメント数」が空になります。

理由がよくわかりません。国コードエラーのある「グローバルページ」について考えていますが、これに関する情報が見つかりません。

何か案が ?

編集: ページのグローバルな子 ID を取得するために別のリクエストを試してみてください。ただし、コカコーラとスターバックスはグローバル ページ システムを使用していないようです。

starbucks?fields=global_brand_children.username,global_brand_parent_page

では、ストリーム コンテンツを取得するときに、最初のリクエストが空の情報を返す理由は何ですか?

4

1 に答える 1

3

「巨大なページ」には何の問題もありません。「巨大なページ」にはファンからの投稿やシェアがたくさんあるだけです。実際、このstream表はページのすべてのアクティビティを提供します。

typeストリームアクティビティの対象は、nullコンテンツがユーザーからのものである場合です。ページ所有者からの場合はintになります。https://developers.facebook.com/docs/reference/fql/stream/typeのフィールドの説明を参照してください。

nullをとして取得する理由は、またはフィールドがに設定されlike countている投稿に出くわしたためです。これらの投稿は、ページの(つまり、ユーザーのタイムラインまたは特定のWebサイト)に存在し、所有者が(公開されている場合でも)公開のいいねやコメントを許可していないため、いいねやコメントを付けることはできません。あなたがページのストリームでそのような活動を見つけるつもりであるならば、彼らが彼らのメッセージまたは写真でページにタグを付けたからです。can_likecan_commentfalse


最初のコメントに答えて編集します。

質問:次のクエリでページの所有者からの投稿が返されないのはなぜですか。

SELECT actor_id, message 
  FROM stream 
 WHERE source_id = 40796308305 
      AND actor_id = 40796308305

このクエリが返すことができる結果の数を見てみましょう。

SELECT actor_id, message 
  FROM stream 
 WHERE source_id = 40796308305

さて、17の結果が得られます。なぜ17?知らない。

リクエストに追加AND actor_id = 40796308305すると、これらの17の結果の中からどれがとしてあるかがチェックされ40796308305ますactor_id

答え?なし

最初の17個の結果のみをチェックするため、LIMIT:を指定する必要があります。

SELECT actor_id, message 
  FROM stream 
 WHERE source_id = 40796308305 
      AND actor_id = 40796308305 
 LIMIT 100

そして、そこにあなたはあなたが望むものを手に入れます。

これは、FacebookAPIの微妙な点の1つです。ここに記載されています:https ://developers.facebook.com/blog/post/478/

于 2013-03-09T11:21:26.017 に答える