Запросы Python эквивалентны curl -H

Я пытаюсь подписаться на поток событий, исходящий от фотона моей частицы. Документы предлагают

curl -H "Authorization: Bearer {ACCESS_TOKEN_GOES_HERE}" \
https://api.particle.io/v1/events/motion-detected

я пробовал

address3 ='https://api.particle.io/v1/events/motion-detected'
data = {'access_token': access_token}
r3 = requests.get(address3,params=data)

но я ничего не получаю и ничего не имею в виду, в ответ

Я ожидаю ответ как:

event: motion-detected
data: {"data":"intact","ttl":"60","published_at":"2015-06-25T05:08:22.136Z","coreid":"coreid"}

event: motion-detected
data: {"data":"broken","ttl":"60","published_at":"2015-06-25T05:08:23.014Z","coreid":"coreid"}

Я просто не понимаю, что делает curl относительно запросов. Спасибо за помощь, JR

2 ответа

Пользовательские заголовки передаются как словарь в headers аргумент

address3 ='https://api.particle.io/v1/events/motion-detected'
data = {'Authorization': 'Bearer {ACCESS_TOKEN_GOES_HERE}'}
r3 = requests.get(address3, headers=data)

params Аргумент используется для передачи параметров URL. В основном ваш код выдает запрос https://api.particle.io/v1/events/motion-detected?access_token=token_goes_here, это может быть подтверждено печатью URL print(r3.url)

Как указано в ответе Алика, пользовательские заголовки передаются в виде словаря в headers аргумент. В вашем случае это было бы

address3 ='https://api.particle.io/v1/events/motion-detected'
data = {'Authorization': 'Bearer ' + access_token}
r3 = requests.get(address3, headers=data)

Поскольку это аутентификация, самым чистым способом было бы реализовать пользовательский обработчик аутентификации, который устанавливает этот заголовок, как описано в документации.

Другие вопросы по тегам