如何使用Python验证和访问特定的API

时间:2018-01-19 18:10:50

标签: python api authentication tweepy

我正在尝试使用Python访问API,但到目前为止我所达到的最好的是401响应(我未经过身份验证)。

这是API:
https://opendata-api.stib-mivb.be/Files/1.0/Gtfs

这是我用来获得401响应的代码:

import requests
response = requests.get("https://opendata-api.stib-mivb.be/Files/1.0/Gtfs")
print (response.status_code)

我试图理解他们提供的代码示例,但无法得到它:

curl -k -X GET --header“Accept:application / zip”--header“授权:Bearer b2ba6c7a35d667564ffa2765aec6ea07”-o ./gtfs.zip“https://opendata-api.stib-mivb.be/Files/1.0/Gtfs

如何识别消费者密钥,消费者秘密,我收到的访问令牌(他们不提供访问令牌秘密)使用Tweepy你也应该使用访问令牌秘密...例如:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

所以我被卡住了......

任何帮助?

谢谢

1 个答案:

答案 0 :(得分:0)

此处的访问方法为bearer token。您将获得一个令人保密的令牌,并在您提出请求时给予回复,这就是它的全部内容。只需提出您的请求:

response = requests.get("https://opendata-api.stib-mivb.be/Files/1.0/Gtfs",
    headers = {'Authorization': 'Bearer {}'.format(access_token)})

他们提供的数据是一个大小合适的zip文件;我建议按照this answer中的示例来传输对文件的响应。像这样:

response = requests.get("https://opendata-api.stib-mivb.be/Files/1.0/Gtfs",
    headers = {'Authorization': 'Bearer {}'.format(access_token)},
    stream = True)
with open('gtfs.zip', 'w') as out:
    for chunk in response.iter_content(chunk_size=4096):
        out.write(chunk)