Если вы присмотритесь, это будет гораздо проще понять.-H
в curl добавляет заголовок, поэтому из вашей команды curl (которая, как я полагаю, работает) я вижу, что Authorization: Token a9a...
устанавливается как заголовок , но в вашем коде Python вы 'переустанавливая его как POST data .
Итак, ваше решение - просто установить его в качестве заголовка и удалить часть данных POST.
header = {
"Accept": "application/json",
"Authorization": "Token a9a..."
}
Остальная часть в порядке.
Обновить: Вы все делаете неправильно.Я раньше не проверял документацию по API, но, посмотрев на нее, теперь я понимаю, что вы все делали неправильно.Поддерживается метод GET , в то время как вы выполняли запрос POST, с точностью до наоборот.Кроме того, URL-адрес GET был сделан конкретным, URL имеет уникальный account_id
и заканчивается positions/
конечной точкой.
Так что ваш код будет выглядеть примерно так:
def account_info():
header = {
"Accept": "application/json",
"Authorization": "a9a..."
}
url = "https://api.robinhood.com/accounts/{account_id}/positions/"
r = requests.get(url, headers=header)
print r.text
account_info()