Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Возможность получения токена #518

Closed
NicWeiss opened this issue Apr 26, 2022 · 8 comments
Closed

Возможность получения токена #518

NicWeiss opened this issue Apr 26, 2022 · 8 comments

Comments

@NicWeiss
Copy link

С версии 2.0.0, библиотека больше не позволяет получать токен с помощью пары (логин/пароль), но альтарнативный вариант получения токена не был предложен.
В текущих реалиях, сторонним проектам, потребуется самим реализовывать авторизацию или оставаться на версии 1.0.0

Хотелось-бы вернуть получение токена помощью пары (логин/пароль), или получить альтернативный вариан генерации токена.

@vantu5z
Copy link

vantu5z commented Apr 28, 2022

Не могу понять как использовать токен для авторизации.
В личном кабинете Пароли и авторизация -> Пароли приложений создал токен для автомагнитолы.
Дальше пытаюсь инициализировать клиента, но ничего не получается:

from yandex_music import Client
client = Client('скопированный_токен').init()
Yandex Music API v2.0.0, Copyright (C) 2019-2022 Il`ya (Marshal) <https://github.com/MarshalX>
Licensed under the terms of the GNU Lesser General Public License v3 (LGPLv3)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.10/site-packages/yandex_music/client.py", line 66, in wrapper
    result = method(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/yandex_music/client.py", line 152, in init
    self.me = self.account_status()
  File "/usr/lib/python3.10/site-packages/yandex_music/client.py", line 66, in wrapper
    result = method(*args, **kwargs)
  File "/usr/lib/python3.10/site-packages/yandex_music/client.py", line 173, in account_status
    result = self._request.get(url, timeout=timeout, *args, **kwargs)
  File "/usr/lib/python3.10/site-packages/yandex_music/utils/request.py", line 242, in get
    result = self._request_wrapper(
  File "/usr/lib/python3.10/site-packages/yandex_music/utils/request.py", line 212, in _request_wrapper
    raise UnauthorizedError(message)
yandex_music.exceptions.UnauthorizedError: {'name': 'session-expired', 'message': 'Your OAuth token is likely expired'} 

@MarshalX
Copy link
Owner

@vantu5z Нельзя так создать токен. Яндекс музыка это не автомагнитола

@vantu5z
Copy link

vantu5z commented Apr 28, 2022

Видимо нужно так https://yandex.ru/dev/id/doc/dg/oauth/concepts/about.html

Теперь вот так ругается, при попытке получить users_playlists_list:

user_playlists = client.users_playlists_list()

yandex_music.exceptions.BadRequestError: {'name': 'ownerOtherwiseUserBindingError', 'message': 'User should be authenticated or ownerUid defined'} 

Похоже не указал нужные разрешения для приложения (добавил только Яндекс.Директ).

@MarshalX
Copy link
Owner

@vantu5z Нельзя создать свое собственное OAuth приложение с доступом к Яндекс.Музыка

@vantu5z
Copy link

vantu5z commented Apr 28, 2022

@MarshalX И как тогда получить токен?

@MarshalX
Copy link
Owner

@vantu5z Можно тут попытать удачу https://github.com/MarshalX/yandex-music-token

@NicWeiss
Copy link
Author

NicWeiss commented May 8, 2022

К сожалению метод выше не особо работает и возвращает
{'status': 'error', 'errors': ['password.not_matched']}
на 100% верные логин и пароль

'can_authorize': True,
'status': 'ok',
'auth_methods': ['password', 'magic_link']

@MarshalX
Copy link
Owner

MarshalX commented Jun 1, 2022

Обращаю ваше внимание на существование данного обсуждения: #513

@MarshalX MarshalX closed this as completed Jun 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants