# Яндекс ID (OAuth) API
Библиотека для работы с API Яндекс ID (OAuth) для Python 3.12+.
Поддерживает асинхронную работу.
[Документация API](https://yandex.ru/dev/id/doc/dg/index.html)
## Установка
1. С помощью pip:
```bash
pip install yid-ng
```
3. Из исходников:
```bash
git clone https://github.com/LulzLoL231/yandexid
pip install ./yandexid
```
## Пример использования
1. Получение OAuth токена:
```python
from yandexid import YandexOAuth
yandex_oauth = YandexOAuth(
client_id='<client_id>',
client_secret='<client_secret>',
redirect_uri='<redirect_uri>'
)
auth_url = yandex_oauth.get_authorization_url()
# Тут нужно перейти по ссылке auth_url и получить код авторизации
token = yandex_oauth.get_token_from_code('<code>')
```
Возвращает объект `Token` с информацией о OAuth токене. Формат объекта совпадает с [форматом ответа из API Яндекс ID](https://yandex.ru/dev/id/doc/dg/oauth/reference/console-client.html#console-client__token-body-title).
2. Получение информации о пользователе:
```python
from yandexid import YandexID
yandex_id = YandexID('<oauth_token>')
user_info = yandex_id.get_user_info_json()
```
Возвращает объект `User` с информацией о пользователе. Формат объекта совпадает с [форматом ответа из API Яндекс ID](https://yandex.ru/dev/id/doc/dg/api-id/reference/response.html).
## Асинхронная работа
Чтобы использовать асинхронность, используйте классы `AsyncYandexOAuth` и `AsyncYandexID`:
```python
from yandexid import AsyncYandexID
yandex_id = AsyncYandexID('<oauth_token>')
user_info = await yandex_id.get_user_info_json()
```
Название методов полностью совпадает с названием синхронных методов, не забывайте использовать `await` перед вызовом асинхронных методов.
Логотипы Яндекс ID и название сервиса "Яндекс ID" принадлежат Яндексу.
Raw data
{
"_id": null,
"home_page": "https://github.com/LulzLoL231/yandexid",
"name": "yaidng",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.10,<4.0",
"maintainer_email": "",
"keywords": "yandex,oauth,api,wrapper,yandexid,yandex-id",
"author": "Rick Sanchez",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/f2/0c/449b10081ec6f0469852b4bfe147e901e556a230be19d9959ec19f7fb802/yaidng-24.1.0.tar.gz",
"platform": null,
"description": "# \u042f\u043d\u0434\u0435\u043a\u0441 ID (OAuth) API\n\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API \u042f\u043d\u0434\u0435\u043a\u0441 ID (OAuth) \u0434\u043b\u044f Python 3.12+.\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443.\n\n[\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f API](https://yandex.ru/dev/id/doc/dg/index.html)\n\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n1. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pip:\n\n ```bash\n pip install yid-ng\n ```\n\n3. \u0418\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u043e\u0432:\n\n ```bash\n git clone https://github.com/LulzLoL231/yandexid\n pip install ./yandexid\n ```\n\n## \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f\n\n1. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 OAuth \u0442\u043e\u043a\u0435\u043d\u0430:\n\n ```python\n from yandexid import YandexOAuth\n\n yandex_oauth = YandexOAuth(\n client_id='<client_id>',\n client_secret='<client_secret>',\n redirect_uri='<redirect_uri>'\n )\n auth_url = yandex_oauth.get_authorization_url()\n # \u0422\u0443\u0442 \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435 auth_url \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u0434 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438\n token = yandex_oauth.get_token_from_code('<code>')\n ```\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 `Token` \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e OAuth \u0442\u043e\u043a\u0435\u043d\u0435. \u0424\u043e\u0440\u043c\u0430\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 [\u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0437 API \u042f\u043d\u0434\u0435\u043a\u0441 ID](https://yandex.ru/dev/id/doc/dg/oauth/reference/console-client.html#console-client__token-body-title).\n\n\n2. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435:\n\n ```python\n from yandexid import YandexID\n\n yandex_id = YandexID('<oauth_token>')\n user_info = yandex_id.get_user_info_json()\n ```\n \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043e\u0431\u044a\u0435\u043a\u0442 `User` \u0441 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435. \u0424\u043e\u0440\u043c\u0430\u0442 \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 [\u0444\u043e\u0440\u043c\u0430\u0442\u043e\u043c \u043e\u0442\u0432\u0435\u0442\u0430 \u0438\u0437 API \u042f\u043d\u0434\u0435\u043a\u0441 ID](https://yandex.ru/dev/id/doc/dg/api-id/reference/response.html).\n\n## \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430\n\u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u044c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043b\u0430\u0441\u0441\u044b `AsyncYandexOAuth` \u0438 `AsyncYandexID`:\n\n```python\nfrom yandexid import AsyncYandexID\n\nyandex_id = AsyncYandexID('<oauth_token>')\nuser_info = await yandex_id.get_user_info_json()\n```\n\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u0435\u0442 \u0441 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \u043d\u0435 \u0437\u0430\u0431\u044b\u0432\u0430\u0439\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c `await` \u043f\u0435\u0440\u0435\u0434 \u0432\u044b\u0437\u043e\u0432\u043e\u043c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432.\n\n\u041b\u043e\u0433\u043e\u0442\u0438\u043f\u044b \u042f\u043d\u0434\u0435\u043a\u0441 ID \u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \"\u042f\u043d\u0434\u0435\u043a\u0441 ID\" \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0430\u0442 \u042f\u043d\u0434\u0435\u043a\u0441\u0443.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Yandex ID oauth API wrapper",
"version": "24.1.0",
"project_urls": {
"Homepage": "https://github.com/LulzLoL231/yandexid",
"Repository": "https://github.com/LulzLoL231/yandexid"
},
"split_keywords": [
"yandex",
"oauth",
"api",
"wrapper",
"yandexid",
"yandex-id"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5ea9187a9d7b29fb8ace13d032ec72585604a745fa9c10b094e9b141389af4ea",
"md5": "1fcb6bd736e12957f8277b8a3aa527c1",
"sha256": "67dbdf53db0d7a84f3f05ed10696f42ec58179b7e374c11d497bcbcc6eac9de8"
},
"downloads": -1,
"filename": "yaidng-24.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1fcb6bd736e12957f8277b8a3aa527c1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10,<4.0",
"size": 15608,
"upload_time": "2024-02-07T13:51:14",
"upload_time_iso_8601": "2024-02-07T13:51:14.918199Z",
"url": "https://files.pythonhosted.org/packages/5e/a9/187a9d7b29fb8ace13d032ec72585604a745fa9c10b094e9b141389af4ea/yaidng-24.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f20c449b10081ec6f0469852b4bfe147e901e556a230be19d9959ec19f7fb802",
"md5": "1d721f851595e62373217c2a69be796a",
"sha256": "c3eebee6f73b239c545ae0c4c382b101c2cac6afe3fbd4184c5664acbb67c9bf"
},
"downloads": -1,
"filename": "yaidng-24.1.0.tar.gz",
"has_sig": false,
"md5_digest": "1d721f851595e62373217c2a69be796a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10,<4.0",
"size": 10094,
"upload_time": "2024-02-07T13:51:16",
"upload_time_iso_8601": "2024-02-07T13:51:16.807725Z",
"url": "https://files.pythonhosted.org/packages/f2/0c/449b10081ec6f0469852b4bfe147e901e556a230be19d9959ec19f7fb802/yaidng-24.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-07 13:51:16",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "LulzLoL231",
"github_project": "yandexid",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "yaidng"
}