title: Instagram graph api media posts between dates
body: <p>I'm trying to retrieve last month's media posts from an Instagram Business profile I manage, by using <code>'since'</code> and <code>'until'</code>, but it doesn't seem to work properly as the API returns posts which are out of the time range I selected. </p>
  
  <p>I'm using the following string to call the API:</p>
  
  <pre><code>business_profile_id/media?fields=timestamp&amp;since=2018-04-01&amp;until=2018-04-30
  </code></pre>
  
  <p>while the Python snippet would be this (using the same <a href="https://github.com/mobolic/facebook-sdk/blob/master/facebook/__init__.py" rel="noreferrer"><strong>init</strong></a> script from the facebook-python-sdk)</p>
  
  <pre><code>import facebook
  
  graph = facebook.GraphAPI(access_token)
  profile = graph.get_object(user)    
  posts = graph.get_connections(profile['id'], 'media?fields=caption,permalink,timestamp&amp;since=2018-04-01&amp;until=2018-04-30')
  </code></pre>
  
  <p>where get.connections is </p>
  
  <pre><code>def get_connections(self, id, connection_name, **args):
      """Fetches the connections for given object."""
      return self.request(
          "{0}/{1}/{2}".format(self.version, id, connection_name), args)
  </code></pre>
  
  <p>and request is </p>
  
  <pre><code>def request(
          self, path, args=None, post_args=None, files=None, method=None):
      """Fetches the given path in the Graph API.
      We translate args to a valid query string. If post_args is
      given, we send a POST request to the given path with the given
      arguments.
      """
      if args is None:
          args = dict()
      if post_args is not None:
          method = "POST"
  
      # Add `access_token` to post_args or args if it has not already been
      # included.
      if self.access_token:
          # If post_args exists, we assume that args either does not exists
          # or it does not need `access_token`.
          if post_args and "access_token" not in post_args:
              post_args["access_token"] = self.access_token
          elif "access_token" not in args:
              args["access_token"] = self.access_token
  
      try:
          response = self.session.request(
              method or "GET",
              FACEBOOK_GRAPH_URL + path,
              timeout=self.timeout,
              params=args,
              data=post_args,
              proxies=self.proxies,
              files=files)
      except requests.HTTPError as e:
          response = json.loads(e.read())
          raise GraphAPIError(response)
  
      headers = response.headers
      if 'json' in headers['content-type']:
          result = response.json()
      elif 'image/' in headers['content-type']:
          mimetype = headers['content-type']
          result = {"data": response.content,
                    "mime-type": mimetype,
                    "url": response.url}
      elif "access_token" in parse_qs(response.text):
          query_str = parse_qs(response.text)
          if "access_token" in query_str:
              result = {"access_token": query_str["access_token"][0]}
              if "expires" in query_str:
                  result["expires"] = query_str["expires"][0]
          else:
              raise GraphAPIError(response.json())
      else:
          raise GraphAPIError('Maintype was not text, image, or querystring')
  
      if result and isinstance(result, dict) and result.get("error"):
          raise GraphAPIError(result)
      return result
  </code></pre>
  
  <p>Basically I'd like to get posts for a certain period and then get insights for each one. </p>
  
  <p>Has anyone encountered this problem before?</p>