Я подписан на амазонки. руководство по созданию приложения Python, которое может получить доступ к Alexa. Я получил свои токены доступа/обновления и пытаюсь открыть соединение HTTP2 с AVS.
Поскольку я делаю это на python, я использовал библиотеку requests для управления все мои HTTP-соединения. Однако я не могу пройти первый шаг по открытию соединения с AVS. Я думаю, проблема просто в синтаксисе моего запроса, так как я не уверен, как определенные элементы запроса на получение должны быть представлены в HTTP-вызове. Конкретно,
Чтобы установить нисходящий поток, ваш клиент должен сделать запрос GET к /{{версия API}}/directives в течение 10 секунд после открытия соединения с AVS. Запрос должен выглядеть следующим образом:
1 :method = GET
2 :scheme = https
3 :path = /{{API version}}/directives
4 authorization = Bearer {{YOUR_ACCESS_TOKEN}}
Для начала та часть инструкции, где указано
...в течение 10 секунд после открытия соединения с AVS
Будет ли это отдельный вызов от запроса GET к /API version/directives
? Если да, то как это будет выглядеть?
Затем для фактического вызова /API version/directives
мой код выглядит так (Python):
def establishDownstream():
url = "https://avs-alexa-na.amazon.com/v20160207/directives"
foo = "Bearer " + ACCESS_KEY
payload = {"authorization" : foo}
g = requests.get(url, params=payload)
Я полагаю, что, поскольку это вызов requests.get()
, позаботится о :method = GET
, поскольку URL-адрес начинается с https://
, позаботится о :scheme = https
, а сам URL-адрес позаботится о пути (опять же, поправьте меня, если я ошибаюсь ). Затем мне просто нужно передать свой ключ доступа в качестве значения в authorization
, что я и делаю через params
. Однако это не приводит к успеху (конкретное сообщение об ошибке — requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:590)
).
Я действительно не знаю, что здесь происходит. Все руководства, которые я нашел в Интернете по протоколам HTTP-запросов, структурируют свои запросы в блочной форме, а не через библиотеку Python, поэтому у меня нет примеров для работы.
Любая помощь приветствуется!
requests
отлично работал, когда я использовал его для получения токена доступа, также от Amazon. - person David Cai   schedule 21.06.2016