Вход в Spotify API на esp32Python

Программы на Python
Anonymous
Вход в Spotify API на esp32

Сообщение Anonymous »

Я работаю над проектом, в котором мне нужно войти в систему на ESP32 под своей учетной записью Spotify. Теперь я использую «поток кода авторизации», как показано в документации Spotify: https://developer.spotify.com/documenta ... /code-flow
Но вместо того, чтобы открыть ссылку для авторизация пользователя из ESP32, я печатаю ее через последовательный порт. После этого я запускаю точку доступа с ESP32, которая подключена к той же локальной сети моего ПК. Теперь открываю ссылку на ПК и логинюсь. В качестве URI перенаправления я установил локальный IP-адрес ESP32, поэтому после входа в систему компьютер перенаправляется на страницу esp32, esp32 получает из URL-адреса «код» и «состояние». После этого я следую порядку, показанному в документации.
Вопрос: правильно ли это сделать? Если я хочу создать Android-приложение для входа в систему, достаточно ли отправить ссылку через Bluetooth вместо последовательного порта?
queryParameters = {
'response_type': 'code',
'client_id': CLIENT_ID,
'scope': SCOPE,
'redirect_uri': REDIRECT_URI,
'state': generateRandomString(16),
'show_dialog': 'False'
}

def assembleQueryParameters(dominio, parametri):
url = dominio+'?'
for chiave in parametri.keys():
url=url+chiave+"="+parametri[chiave]+"&"
url = url[:-1]
return url

print(assembleQueryParameters('https://accounts.spotify.com/authorize',queryParameters))

addr = socket.getaddrinfo(ESP32_IP, 80)[0][-1]
server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_sock.bind(addr)
server_sock.listen(1)
print('Server started. Waiting for connection')
client_sock, client_addr = server_sock.accept()
print('Connection from:', client_addr)

# recive data from client
request = client_sock.recv(1024)
print('Richiesta:', request)
code = str(request).split("=")[1].split('&')[0]
print('\n',code)
# Send response to client
response = "You can now close this page"
client_sock.send(response)

client_sock.close()
server_sock.close()


Подробнее здесь: https://stackoverflow.com/questions/790 ... i-on-esp32

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