Невозможно использовать OAuth2 с API Honeywell для управления термостатом, авторизованным кодом потока и учетными даннымPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно использовать OAuth2 с API Honeywell для управления термостатом, авторизованным кодом потока и учетными данным

Сообщение Anonymous »

Если я использую их веб-сайт разработчика, я подключаю свой ключ API, и он аутентифицирует OAuth2, и я могу скопировать и вставить токен носителя («access_token») прямо в свой скрипт Python, и я могу управлять термостатом.< /p>
Однако, когда я пытаюсь сгенерировать access_token самостоятельно, он работает нормально, но я не могу его использовать.
Я в замешательстве Я думаю, это что-то вроде авторизованного кода потока OAuth2 и учетных данных клиента OAuth2?
При использовании учетных данных клиента в заголовках есть ссылка на использование «UserRefID», но я не видел этой переменной ни в каких ответах, ни в каких-либо других документация?
def gettemp():
bearer = get_token()

url = f"https://api.honeywell.com/v2/devices/th ... /{deviceId}"
params = {
"apikey": client_id, #this is the consumer key provided by honeywell (risideo)
"locationId": mylocationid
}

headers = {
"Accept": "*/*",
"Accept-Encoding": "gzip",
"Accept-Language": "en-US",
"Authorization": f"Bearer {bearer}",
"DNT": "1",
"Host": "api.honeywell.com",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "cross-site",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
"X-Forwarded-Port": "443",
"X-Forwarded-Proto": "https"
}
response = requests.get(url, params=params, headers=headers)
code = response.status_code
print(response.text)
indoor = response.json()['indoorTemperature']
outdoor = response.json()['outdoorTemperature']

если я размещаю носитель статически выше с веб-сайта, он работает до тех пор, пока не истечет время действия токена.
код ниже дает мне новый токен, но он никогда не работает
def get_token():
auth_header = base64.b64encode(f'{client_id}:{client_secret}'.encode()).decode()

token_url = 'https://api.honeywell.com/oauth2/accesstoken'

headers = {
'Authorization': f'Basic {auth_header}',
'Content-Type': 'application/x-www-form-urlencoded'
}
data = {
'grant_type': 'client_credentials',
}
response = requests.post(token_url, headers=headers, data=data)
print(f'bearer response is {response}')
bearer = response.json()['access_token']
return bearer

это ответ от get_token:
"refresh_token_expires_in": "0",
"api_product_list": "[Basic Development Plan]",
"api_product_list_json": [
"Basic Development Plan"
],
"organization_name": "connectedhome",
"developer.email": "thermostat@gmail.com",
"token_type": "Bearer",
"issued_at": "1691280024096",
"client_id": "shO6XG34OyRbEwFgaOtgFpqPmqAHSZlg",
"access_token": "UbxWbkZEAVGfbb7uGXvACcr34Wv4",
"application_name": "6f54cdb4-4d27-4b95-ae39-d8d5db36ad83",
"scope": "",
"expires_in": "3599",
"refresh_count": "0",
"status": "approved"

и ответ от использования этого токена в gettemp():
"code": "Unauthorized",
"message": "Authorization has been denied for this request "


Подробнее здесь: https://stackoverflow.com/questions/768 ... -flow-code
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Невозможно использовать OAuth2 с API Honeywell для управления термостатом, авторизованным кодом потока и учетными данным
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Структурирование архитектуры API API .NET 9 для микросервисов и безопасных лучших практик управления учетными записями [
    Anonymous » » в форуме C#
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Streamlabs API 2.0 с авторизованным HTTP
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Streamlabs API 2.0 с авторизованным HTTP
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Ошибка при создании RFID-считывателя Honeywell IH45
    Гость » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»