FQL または Graph API を使用して、Koala gem を使用して一連の Facebook ユーザーからの投稿の JSON リストを返せるようにしたいと考えています。現在、Koala のバッチ関数を使用して、各ユーザー フィードから最初の 'x' 個のアイテムを呼び出し、配列を平坦化し、時間で並べ替えています。これに関する問題は、最初の「x」個のアイテムを取得できるようにしたいということです。各ユーザーから 10 を取得するのではなく、クエリしたユーザーからの最新の 10 の投稿だけを取得して、次の投稿を取得できるようにします。フィードからの 10 は、自分のホーム フィードに期待するものと似ています。
これは私が現在持っているものです:
@oauth = Koala::Facebook::OAuth.new
@access_token = @oauth.get_app_access_token
@graph = Koala::Facebook::API.new(@access_token)
artists = []
followings.each do |following|
artists << following.artist
end
feed = @graph.batch do |batch_api|
artists.each do |artist|
feed | batch_api.get_connections(artist.facebook, "feed", {"limit" => "10"})
end
end
feed.flatten!
feed.sort! { |x, y| y["created_time"] <=> x["created_time"] }
編集
次のように、FQLで可能な解決策を1つ見つけたと思います
batch_api.fql_query("SELECT post_id, source_id, likes, actor_id, message, type FROM stream WHERE source_id IN(artist1, artist2...)")
しかし、私は今エラーを返しました
[#<Koala::Facebook::APIError: OAuthException: (#606) Queries for multiple source_ids require a non-zero viewer that has granted read_stream permission>]
これに関する問題は、私のアプリケーションでは誰かが Facebook でログインする必要がないため、read_stream パーミッションを要求できないことです。Facebookアプリ自体がこれを要求できる方法はありますか?