1

私はこのFQLクエリと混同しています:

SELECT type,attachment,message,permalink,created_time
FROM stream
WHERE
  source_id = xxxxxx and
  actor_id= xxxxxx and
  type = 247
ORDER BY created_time DESC
LIMIT 46

空に戻ります。しかし、私がこれを試すと:

SELECT type,attachment,message,permalink,created_time
FROM stream
WHERE
  source_id = xxxxxx and
  actor_id= xxxxxx and
  type = 247
ORDER BY created_time DESC
LIMIT 50

期待どおり、1 レコードが返されます。

のせいか、それとも別のせいLIMITか?ユーザーの 15 件の投稿を表示するにはどうすればよいですか?

4

2 に答える 2

0

これは Facebook の癖です。一部の投稿は、応答から「非表示」になっています。そのため、上位 45 件の投稿はすべて非表示になり (投稿を取得するために使用している資格情報を前提として)、次の 5 件のうち 1 件が表示されます。したがって、目に見えるものだけを返します。制限を増やすと、より多くを取得できます。

制限を含めず、最初の 15 を手動でカウントして使用する以外に、実際の回避策はありません。

于 2012-06-21T04:11:22.550 に答える
0
List<WallPosts> posts = facebookClient.executeQuery("select strip_tags(message),type from stream where filter_key = 'others'",WallPosts.class);
Iterator<WallPosts> postIterator = posts.iterator();
int wallCount = 0;
while (postIterator.hasNext()) {
  if (wallCount == 15) break;
  WallPosts post = postIterator.next();
  if (post.message != null) { // if message is not blank
    wallCount ++;
    System.err.println(post.message);
}

認証されたユーザーのウォールにある他のユーザーからの最後の 15 件のメッセージを取得します。一部のメッセージは空白です。そのため、null チェックを行っています。

于 2012-09-19T21:25:10.467 に答える