0

Facebook にはPointless Haikuというグループがあります。 これまでにグループのウォールに投稿されたすべての投稿をダウンロードして、ランダムな俳句で何時間も楽しむことができるようにしたいと考えています。これまでのところ、この fql クエリでグラフ エクスプローラーを使用してきました (これは正しい用語ですか?):2204535003?fields=feed.limit(10000).fields(message)で、一部のウォール ポストが表示されますが、すべてではありません (設定した制限である最初の 10000 も表示されません)。 . 私は Facebook アプリを持っていません。なぜなら、私がこれをやりたい唯一の理由は、自分を楽しませるためだからです。すべての投稿を取得したら、おそらくそれらをファイルに書き込み、Python で後処理を行います。

これを達成するための最良の方法は何ですか?プログラムで実行したい場合、これを行うためだけにアプリを作成する必要がありますか?

4

2 に答える 2

1

壁の投稿の一部は表示されますが、すべてではありません(私が設定した制限である最初の 10000 でさえありません)。

Graph Explorer は、フルパワーのクエリ エンジンではなく、開発およびデバッグ ツール (Python の IDLE のようなもの) を意図していると思います。そのため、オーバーライドできない独自のページサイズ制限が組み込まれていると思います。制限は 25 だと思います。これは、返される結果の数の制限ではないことに注意してください。1 ページに表示される結果の最大数です。 結果セットのサイズによっては、セット全体を表示するのに数ページまたは多数のページが必要になる場合があります。

そのため...グラフ エクスプローラーでクエリを実行し、結果を取得した場合、グラフ エクスプローラーによって生成された結果の一番下までスクロールすると、次のように表示される場合があります。

  "paging": {
    "previous": "https://graph.facebook.com/...",
    "next": "https://graph.facebook.com/... "
  }

"next" ラベルに続く URL をクリックすると、結果の次のページに移動します。そして、それを続けていくと、最終的にはすべてのページをクリックして、すべての結果が表示されるようになります。

一度にすべての結果を取得する方法は、(たとえば) Python スクリプトまたはその他の種類のスクリプトを使用して、プログラムで GET 要求 (Graph Explorer を使用して作成およびデバッグすることができます) を送信することだと思います。

例として、このクエリを使用して、2015 年 1 月 1 日以降に Facebook グループに投稿されたすべてのメッセージとコメントのリストを取得しました。 .)

128791213885003/?fields=name,id,description,owner,feed.since(2015-01-01){message,created_time,comments{from,message,created_time,comments{from,message,comments{from,message}}}}

これが役立つことを願っています。

于 2016-05-08T07:25:08.633 に答える
0

そのためにGraph Explorerを使用できます。

  1. /me/groupsはグループ ID を持ち込むことができます
  2. /group-id/feedはグループ フィードをもたらします

user_groupsパーミッションで Access Token を取得することを忘れないでください。

于 2014-07-23T17:50:27.353 に答える