日期之间的Instagram图形API媒体帖子 [英] Instagram graph api media posts between dates
问题描述
我正在尝试使用'since'
和'until'
从我管理的Instagram业务资料中检索上个月的媒体帖子,但是由于API返回的帖子超出我选择的时间范围.
I'm trying to retrieve last month's media posts from an Instagram Business profile I manage, by using 'since'
and 'until'
, but it doesn't seem to work properly as the API returns posts which are out of the time range I selected.
我正在使用以下字符串来调用API:
I'm using the following string to call the API:
business_profile_id/media?fields=timestamp&since=2018-04-01&until=2018-04-30
而Python代码段就是这个(使用相同的 <来自facebook-python-sdk的strong> init 脚本)
while the Python snippet would be this (using the same init script from the facebook-python-sdk)
import facebook
graph = facebook.GraphAPI(access_token)
profile = graph.get_object(user)
posts = graph.get_connections(profile['id'], 'media?fields=caption,permalink,timestamp&since=2018-04-01&until=2018-04-30')
get.connections在哪里
where get.connections is
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)
请求是
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
基本上,我想获得一段时间的帖子,然后再获取每个帖子的见解.
Basically I'd like to get posts for a certain period and then get insights for each one.
以前有人遇到过这个问题吗?
Has anyone encountered this problem before?
推荐答案
不幸的是,此端点不支持since
和until
参数,并且该端点仅支持基于游标的分页.我要做的唯一方法是使用API响应中提供的before
和after
游标分别加载结果的每一页.
Unfortunately the since
and until
parameters are not supported on this endpoint and this endpoint has only support cursor based pagination. The only way to do what I wish to do is to load each page of results individually using the before
and after
cursors provided in the API response.
这篇关于日期之间的Instagram图形API媒体帖子的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!