Новый для кодирования и борьбы с Netatmo API. Я просто хочу загрузить общедоступные данные, используя их API, но проблема в том, что предоставленная информация предназначена только для разработчиков приложений, которые хотят, чтобы клиенты Netatmo давали приложению разрешение получать свои данные. Я просто хочу использовать область getpublicdata. Вот шаги, описанные на их веб-сайте: Шаг 1 - Перенаправьте пользователя в диалоговое окно Netatmo OAuth2
Перенаправьте пользователя на URL авторизации API. Наша платформа проверит подлинность пользователя и попросит его подтвердить, что он согласен с приложением, обращающимся к его данным.
Метод: POST
Пример запроса
https://api.netatmo.com/oauth2/authorize?
client_id=[YOUR_APP_ID]
&redirect_uri=[YOUR_REDIRECT_URI]
&scope=[SCOPE_SPACE_SEPARATED]
&state=[SOME_ARBITRARY_BUT_UNIQUE_STRING]
Если URL обратного вызова вашего приложения статически настроено в настройках, параметр redirect_uri может быть опущен. Если он присутствует, он должен соответствовать статически определенному. Параметру Response_type также может быть присвоено значение «code», но это поле не является обязательным, поскольку оно устанавливается по умолчанию непосредственно нашей службой. Чтобы обеспечить безопасность процесса, необходимо сгенерировать и сохранить параметр состояния, уникальный для этого запроса. , Параметр состояния - произвольная строка, которую вы выбираете. Он будет передан обратно вашему приложению в качестве параметра redirect_uri, когда пользователь завершит процесс аутентификации. Прежде чем доверять ответу об авторизации, вы должны убедиться, что возвращенный параметр состояния соответствует параметру, отправленному в запросе. Использование параметра состояния помогает предотвратить подделку межсайтовых запросов.
Шаг 2 - пользователю предлагается Авторизуйте ваше приложение
Примечание. Если пользователь еще не вошел в свою учетную запись Netatmo, ему будет предложено войти в систему.
Шаг 3 - Пользователь перенаправлен в ваше приложение
Теперь пользователь перенаправлен на URL-адрес обратного вызова, определенный в настройках приложения, или на redirect_uri, указанный в запросе. Если они авторизовали приложение, они будут перенаправлены с дополнительными параметрами:
[YOUR_REDIRECT_URI]?state=[YOUR_STATE_VALUE]code=[NETATMO_GENERATED_CODE]
Если они не авторизовали приложение, дополнительными параметрами будут «error = access_denied»
Шаг 4 - Получить токен доступа с кодом
мой код пока
import requests
import json
response = requests.post(r'https://api.netatmo.com/oauth2/authorize?',
data = {"client_id":"5e8xxxxxxxxxxxxxxxxxxx",
"redirect_uri" : r"https://github.com/andyspeak",
"scope": "getpublicdata",
"state" : "blahbingbobbz"})
print(response.status_code)
Я получаю код ошибки 302, что означает перенаправление? а также он говорит, что client_id является недействительным. Но есть и проблема получения авторизации пользователя.