1

Facebook の Graph API からステータスのコメントを逆の時系列順に取得しようとしています。つまり、最新のコメントが一番上にあるはずです。これが可能かどうかはわかりません。

Facebook の投稿はデフォルトで時系列の降順で並べられ、コメントはデフォルトで時系列の昇順 (一番古いもの) になることを私は知っています。デフォルトでは、Facebook.com と API からの取得方法を意味します。

Graph API を使用すると、ステータスを降順で取得できますが、コメントは昇順で返されます。プログラムでコメントをソートせずに、API から逆順にコメントを取得したいと考えています。その理由は、プログラムがダウンロードするコメントの数に制限されているためです。そのため、limit=xx を設定すると、最新の xx コメントではなく、最初の xx コメントが実際に取得されます。ステータスに 500 件のコメントがあり、xx=100 の場合、常に同じコメントのセットが取得されるため、これは私にとっては良くありません (投稿される最初の 100 件)。

私が見つけることができる Html リクエストの最適なパラメーターは、時間/日付パラメーター (updated_time) を検索する「order_by」ですが、updated_time (ただし昇順) によって既に順序付けられているため、これは実際には機能しません。可能であれば、updated_time の降順で order_by を指定したいと考えています。

どんな助けでも大歓迎です。

4

2 に答える 2

1

APIを使用してこれを直接行う方法はありませんが、これを機能させる1つの方法は、ステータスのすべてのコメントを取得し、それらを配列に割り当て、結果を逆の順序でループすることです。

次の例では、Guinness Irelandページから最後のステータス更新を取得し、すべてのメッセージを配列に割り当てます。この配列を取得したら、ループを使用して結果を吐き出すことができます。

例:
$ data = file_get_contents('https://graph.facebook.com/GuinnessIreland/statuses?limit=1&access_token='。$ACCESS_TOKEN);

$ comments = json_decode($ data);
$ messages =($ comments-> data [0]-> comments-> data);

for($ counter = count($ messages); $ counter> = 0; $ counter = $ counter-1){
      echo $ messageArray [$ counter]-> message;
      echo $ messageArray [$ counter]-> created_time;
}

于 2012-07-03T15:20:38.730 に答える
0

この URL から get リクエストを使用してコメントを取得できます。json レスポンスが返されます。

https://graph.facebook.com/ "StatusID"/comments?limit=500&access_token="accessToken"

StatusID=132343454_54346345 userID statusid accessToken=user アクセストークン。

JSOn 応答が返されます。コメントしたユーザー、コメント ID、メッセージなどのすべての詳細を取得します。JSON 応答が返されます。それらを解析します。JSON ページの下部にある「page」オブジェクトの「next」文字列に URL を接続して、次のページのコメントを確認します。楽しみ。

于 2012-07-05T07:18:45.340 に答える