2015-01-14 3 views
0

Я использую Spotipy для получения определенных данных от авторизованного пользователя, но я не могу понять, как разрешить мою учетную запись.Spotify без перенаправления URI?

Правильно ли я полагаю, что серверу требуется, чтобы что-то было где-то в http://www.myapp.com/callback? Что нужно вернуть? Может быть, я вообще что-то упустил здесь ... Я очень смущен всей необходимой областью URI перенаправления ...

Я пытаюсь создать программу без веб-сайта, так как я должен обрабатывать авторизацию? Что именно должно сделать URI перенаправления?

Благодаря

Edit:

Использование http://localhost:8888/callback как мое перенаправление URI сейчас, и это работает. Я даже не знаю, почему, поскольку на этом порту ничего не работает.

ответ

1

Отказ от ответственности: Я ничего не знаю о API Spotify. Но я работал с аналогичными API в прошлом (или даже разработал их). Я предполагаю, что они используют какой-то механизм авторизации OpenID/OAuth.

Сама природа этих API заключается в том, что они работают через браузер! Идея состоит в том, что MyApp не имеет ваших фактических учетных данных Spotify, но вместо этого может использоваться некоторый подписанный токен.

Чтобы передать этот токен в MyApp, есть сервер-обратные вызовы, указанные в вашем вопросе. Потому что все, что может сделать браузер, это перенаправление на специальный URL, который вы предоставляете, с некоторой информацией.

Итак, есть концептуально два способа решения этой:

  • легкий, сервер на базе одного: вы на самом деле зарегистрировать myapp.com. Когда ваше приложение пытается авторизовать с помощью spotify, оно сначала создает уникальный ресурс (myapp.com/authrequests/HASH-NUMBER) и сообщает об этом как обратном вызове. Затем он просматривает ходатайства о том, чтобы сделать spotify авторизуемым, и как только они будут закончены, будет вызов myapp.com/authrequests/HASH-NUMBER/ADDITIONAL-INFO. Поэтому, пока ваше приложение ожидает, что это произойдет, оно должно опросить (или открыть веб-сайт и прослушать) myapp.com. Сложно? Подожди, все наладится!

  • сложнее, зависит от ОС: вы пишете приложение, которое регистрируется как поставщик протокола с вашими браузерами. Например. моя компания делает это с протоколом «способтон». Таким образом, мы можем заставить браузер генерировать URL-адреса «ableton: // AUTHORIZATION-REQUEST-RESULT», которые затем будут передаваться через браузер и ОС в запущенное приложение, и таким образом вы получите необходимый секрет.

НТН

+0

Я использую Spotipy, и я считаю, что это делает прослушивание уже (и открывает браузер для авторизации), но часть я не получаю это URI. Должен ли я указывать его на свой домен? Если я это сделаю, что нужно вернуть обратно? Или я могу просто использовать не существующий URI? –

+0

Можете ли вы показать код? – deets

+0

Это проект [this] (https://github.com/plamere/spotipy) python. Но я решил это сейчас, посмотрю мое первоначальное редактирование. Спасибо за объяснение. –

Смежные вопросы