Ruby on rails 如何获取自某个时间段以来的所有连接

Ruby on rails 如何获取自某个时间段以来的所有连接,ruby-on-rails,facebook,ruby-on-rails-3,facebook-graph-api,Ruby On Rails,Facebook,Ruby On Rails 3,Facebook Graph Api,我试图在facebook页面上获取特定时间段以来的所有连接(交互)。我正在使用考拉宝石,并用“自:1.月.前.到我”过滤请求,这似乎很有效。然而,这给了我一次25个结果。如果我将限制改为446(似乎是最大值),效果会更好。但是…如果我使用.next_页面给出给定时间范围内的下一组结果,它只给出下一组结果,而不遵守时间范围 例如,假设我没有增加限制,每个请求有25个结果。我会这样做: @api.get_connections(@fan_page_id, "feed", {since: 1.mont

我试图在facebook页面上获取特定时间段以来的所有连接(交互)。我正在使用考拉宝石,并用“自:1.月.前.到我”过滤请求,这似乎很有效。然而,这给了我一次25个结果。如果我将限制改为446(似乎是最大值),效果会更好。但是…如果我使用.next_页面给出给定时间范围内的下一组结果,它只给出下一组结果,而不遵守时间范围

例如,假设我没有增加限制,每个请求有25个结果。我会这样做:

@api.get_connections(@fan_page_id, "feed", {since: 1.month.ago.to_i})
假设有30个结果,第一个请求得到25个(默认限制)。那么,如果我这样做:

@api.get_connections(@fan_page_id, "feed", {since: 1.month.ago.to_i}).next_page
它不再返回最后5个结果,而是返回25个以上的结果,其中20个不是“自:1.月.前.至”。我有一个while循环在页面中循环,但我不知道在哪里停止,因为只要我一直打电话,它就会一直向我返回结果。下一页

  • 有更好的方法吗
  • 如果没有,那么最好的检查方法是什么,以确保我在循环中查看的帖子仍然在我想要的时间范围内,如果没有,则中断
  • 这是我的密码:

      def perform(fan_page_id, pagination_options = {})
        @since_date = pagination_options[:since_date] if pagination_options[:since_date]
        @limit = pagination_options[:limit] if pagination_options[:limit]
    
        @oauth = Koala::Facebook::OAuth.new
        @api = Koala::Facebook::API.new @oauth.get_app_access_token
    
        fb_page = @api.get_object(fan_page_id)
        @fan_page_id = fb_page["id"]
    
        # Collect all the users who liked, commented, or liked *and* commented on a post
        process_posts(@api.get_connections(@fan_page_id, "feed", {since: @since_date})) do |post|
    
          ## do stuff based on each post
    
        end
      end
    
    
      private
        # Take each post from the specified feed and perform the provided
        # code on each post in that feed.
        #
        # @param [Koala::Facebook::API::GraphCollection] feed An API response containing a page's feed
        def process_posts(feed, options = {})
          raise ArgumentError unless block_given?
    
          current_feed = feed
    
          begin
    
            current_feed.each { |post| yield(post) }
            current_feed = current_feed.next_page
    
          end while current_feed.any?
        end
    
    请试试这些,我想它们管用

     current  =  @api.get_connections(@fan_page_id, "feed", {since: 1.month.ago.to_i})
    
     next = current.next_page
    
     next = next.next_page 
    
     .....