Twitter API 2.0调用时无法获取user.fields返回结果问题求助
解决方案
你需要做两处调整即可正常获取用户字段:
- 首先修改
expansions参数:你当前配置的referenced_tweets.id.author_id仅会返回被引用、转推、回复的关联推文对应的作者信息,若要获取当前接口返回的每条推文本身的作者的用户字段,需要额外添加author_id到expansions中,修改后的参数为:"expansions": "author_id,referenced_tweets.id.author_id" - 其次从正确的返回结构中提取数据:Twitter API 2.0的所有扩展关联数据(包括用户信息、关联推文信息等)不会直接嵌入到单条推文的返回对象内,而是统一存放在返回结果的顶级
includes字段下,你请求的用户字段都在response['includes']['users']数组中,每条用户数据会携带对应用户ID,可与推文返回的author_id字段做匹配关联。
你可以参考如下代码完成用户信息匹配:
# 先构造用户ID到用户详情的映射字典,提升查询效率 user_id_to_info = {} if 'includes' in response and 'users' in response['includes']: for user_item in response['includes']['users']: user_id_to_info[user_item['id']] = user_item # 遍历推文匹配对应用户信息 for tweet_item in response['data']: author_id = tweet_item.get('author_id') if author_id in user_id_to_info: author_detail = user_id_to_info[author_id] # 此处可直接取出你需要的用户字段 print(author_detail['name'], author_detail['username'], author_detail.get('location', '无位置信息'))
内容的提问来源于stack exchange,提问作者Bluff Master
相关产品推荐
相关产品推荐

