我对使用Web API和提取数据还很陌生,而对python也很陌生。我的目标是制作一个统计跟踪器应用程序,但是当我尝试提取数据时却一直收到401。
我已经打印出整个网址,只是为了确保我没有记错。我完全复制并粘贴了API密钥,所以应该没问题
api_token = 'api key in python file'
api_url_base = 'https://public-api.tracker.gg/v2/apex/standard/'
headers = {'Content-Type' : 'application/json',
'Authorization' : 'Bearer {}'.format(api_token)}
def get_player_profile():
api_url = '{}profile/psn/Daltoosh'.format(api_url_base)
response = requests.get(api_url, headers=headers)
if response.status_code == 200:
return json.loads(response.content.decode('utf-8'))
else:
return response.status_code, api_url
print(get_player_profile())
#player_profile = get_player_profile()
#if player_profile is not None:
# print("Career Stats:")
# for k, v in player_profile['profile/psn/Daltoosh'].items():
# print('{0}:{1}.format(k, v)')
#else:
# print('[!] Data Request Failed [!]')
我希望状态码为200,但是身份验证似乎有问题。
答案 0 :(得分:2)
我不太了解您所使用的Web API,但我认为您可能未正确使用API令牌。我认为特定的API不需要Bearer令牌,而需要一个单独的标头TRN-Api-Key
。
所以也许写这样的东西:
headers = {'Content-Type' : 'application/json', 'TRN-Api-Key' : api_token}
如果您使用here,则应该能够阅读有关如何设置身份验证的信息。