所以,我正在玩Etilbudsavis' API(丹麦目录中包含零售商店的优惠)。 我的目标是根据搜索查询检索数据。 the API acutally allows this,开箱即用。但是,当我尝试这样做时,我最终得到一个错误,说我的令牌丢失了。无论如何,这是我的代码:
from urllib2 import urlopen
from json import load
import requests
body = {'api_key': 'secret_api_key'}
response = requests.post('https://api.etilbudsavis.dk/v2/sessions', data=body)
print response.text
new_body = {'_token:': 'token_obtained_from_POST_method', 'query:': 'coca-cola'}
new_response = requests.get('https://api.etilbudsavis.dk/v2/offers/search', data=new_body)
print new_response.text
完整错误:
{"code":1107,"id":"00ilpgq7etum2ksrh4nr6y1jlu5ng8cj","message":"missing token","
details":"Missing token\nNo token found in request to an endpoint that requires
a valid token.","previous":null,"@note.1":"Hey! It looks like you found an error
. If you have any questions about this error, feel free to contact support with
the above error id."}
答案 0 :(得分:1)
由于这是一个GET请求,您应该使用params
参数来传递URL中的数据。
new_response = requests.get('https://api.etilbudsavis.dk/v2/offers/search', params=new_body)
答案 1 :(得分:0)
我设法在Daniel Roseman的帮助下解决了这个问题,他提醒我,在Python Shell中使用API与在浏览器中与API交互不同。文档明确指出,您必须签署API令牌才能使其正常工作。我错过了那个微小的细节......从来没有,丹尼尔帮助我解决了所有问题。再次感谢,Dan。