如何解决Twitter API v2:当参数具有 start_time、end_time
一直在玩 Twitter API。事情进展顺利,直到我添加了开始和结束时间,以及搜索的粒度。 根据 Twitter api 文档,我相当有信心字符串值是正确的,并且 正确添加到参数。 但是我在使用 params 时做错了,有人可以帮我吗。
有效的代码,IE 导致 200 响应和推文:
keywords = 'telsa'
api,query = 'https://api.twitter.com/2','/tweets/search/recent'
request = f'{api}{query}'
params = {'query': keywords,'tweet.fields': 'created_at,lang',# no space before lang
'max_results': '10'}
header = {'authorization':f'Bearer {bearer_token}'}
response = requests.get(request,headers=header,params=params)
if response: # boolean True if response is 200,print(response.response.json())
else:
print(response)
print(params)
<snip>
header = {'authorization':f'Bearer {bearer_token}'}
**************** NEW CODE **************************
# Get datetime for Now and 7 days ago,correctly formatted for Twitter API
dtformat = '%Y-%m-%dT%H:%M:%sZ'
from datetime import datetime,timedelta
time = datetime.Now()
start_time = time - timedelta(days=7)
# convert to strings
start_time,end_time = start_time.strftime(dtformat),time.strftime(dtformat)
# Add new parameters to params dict
params['start_time'] = start_time
params['end_time'] = end_time
params['granularity'] = 'HOUR'
****************************************************
response = requests.get(request,params=params)
<snip>
..以及最后打印的参数:
params: {'query': 'telsa','max_results': '10','start_time': '2021-03-14T14:14:44Z','end_time': '2021-03-21T14:14:44Z','granularity': 'HOUR'}
twitter API docs 显示 start_time、end_time 示例值。它们是相同的格式。
最近发布的使用 API v2 的教程以相同的方式附加了新参数。
添加 3 个新时间变量的任意组合会产生 400 响应。
如果重要的话,Windows 10、64 位
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。