为什么我会收到此错误 - “遗失令牌”? (使用Python玩API)

时间:2016-03-12 19:10:20

标签: python api

所以,我正在玩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."}

2 个答案:

答案 0 :(得分:1)

由于这是一个GET请求,您应该使用params参数来传递URL中的数据。

new_response = requests.get('https://api.etilbudsavis.dk/v2/offers/search', params=new_body)

请参阅the requests docs

答案 1 :(得分:0)

我设法在Daniel Roseman的帮助下解决了这个问题,他提醒我,在Python Shell中使用API​​与在浏览器中与API交互不同。文档明确指出,您必须签署API令牌才能使其正常工作。我错过了那个微小的细节......从来没有,丹尼尔帮助我解决了所有问题。再次感谢,Dan。