尝试提取数据时始终出现401错误

时间:2019-08-14 17:16:40

标签: python api

我对使用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,但是身份验证似乎有问题。

1 个答案:

答案 0 :(得分:2)

我不太了解您所使用的Web API,但我认为您可能未正确使用API​​令牌。我认为特定的API不需要Bearer令牌,而需要一个单独的标头TRN-Api-Key

所以也许写这样的东西:

headers = {'Content-Type' : 'application/json', 'TRN-Api-Key' : api_token}

如果您使用here,则应该能够阅读有关如何设置身份验证的信息。