---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://yandex.ru/dev/direct/doc/en/register.md
  - https://yandex.ru/dev/direct/doc/ru/register.md
  - href: ru/register.md
    type: text/markdown
    title: Markdown version
  - href: llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/start/register.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/direct/doc/ru/llms.txt

# Урок 2. Доступ к API: как зарегистрировать приложение на Яндекс OAuth



В этом уроке мы расскажем о первом шаге получения доступа к API Директа для приложения — о регистрации приложения на Яндекс OAuth. О втором шаге — подаче заявки на доступ — вы узнаете в следующем уроке.

В предыдущем уроке вы создали аккаунт в Директе, который будете использовать как разработчик приложений. Теперь необходимо зарегистрировать приложение на Яндекс OAuth — вы можете сделать это, даже если само приложение еще не создано.

## Что такое OAuth-авторизация и OAuth-токен {#register_whats_apiauth_token}

_OAuth-авторизация_ — это механизм, который позволяет приложению работать с данными пользователя от его имени без необходимости использовать пароль от аккаунта.

В процессе авторизации используются OAuth-токены, которые представляют собой строку с зашифрованными данными:

- идентификатор пользователя;
- идентификатор приложения, которому разрешен доступ к данным пользователя на сервисе;
- набор прав — действий, доступных приложению.

Ваше приложение для работы с API Директа должно быть зарегистрировано на сервисе Яндекс OAuth. Тогда пользователь сможет разрешить приложению доступ к своим рекламно-информационным материалам, а приложение — получить OAuth-токен. Токен необходимо указывать в каждом запросе к API — так Директ узнает, с каким аккаунтом сейчас будет работать приложение, и проверит наличие прав на выполняемые действия.

![](_assets/register_whats_auth.png =500x)

{% note alert %}

- Каждый токен уникален, поскольку выдается для связки «приложение + пользователь». Невозможно получить два одинаковых токена или получить более одного токена для одной и той же связки.
- Если приложение не передало токен в запросе к API, то сервер не позволит получить или изменить какие-либо данные.

{% endnote %}

## Как зарегистрировать приложение на Яндекс OAuth {#register_reg_application}

Войдите на Яндекс под своим логином разработчика. На сервисе Яндекс OAuth откройте страницу [Создание приложения](https://oauth.yandex.ru/client/new), выберите **Для доступа к API или отладки**. Заполните основные поля, в дальнейшем все они доступны для редактирования:

- **Название вашего сервиса** — название, которое будут видеть все пользователи сервиса. Также можно прикрепить иконку вашего сервиса.

- **Почта для связи** — укажите предпочтительную почту для связи.

- **Доступ к данным** — добавьте источник данных для управления рекламой:

    - **Работа с организациями Яндекс ID (passport:business)**, чтобы получить доступ к авторизации от имени организации в ID;

    - **Использование API Яндекс Директа (direct:api)**, чтобы получить доступ к управлению рекламными материалами. 
    
    Можно ввести часть названия, затем выбрать подходящее из предложенного списка.


![](_assets/oauth-data-access.png)

После заполнения полей нажмите **Создать приложение**. На странице вы увидите идентификатор, присвоенные приложению, и секретный ключ, которым будет подписан токен. Идентификатор приложения потребуется при заполнении заявки на доступ к API, а также для получения токена. Идентификатор и другие параметры доступны в веб-интерфейсе Яндекс OAuth в любой момент.

![](_assets/oauth-client-id.png =500x)

{% note alert %}

Регистрировать приложение на Яндекс OAuth должен только разработчик. Пользователям вашего приложения не нужно проходить эту процедуру, даже если каждый пользователь работает со своим экземпляром (копией) приложения.

{% endnote %}

## Что дальше {#register_whats_now}

Итак, вы сделали первый шаг для получения доступа к API Директа — зарегистрировали приложение на Яндекс OAuth. В следующем уроке мы расскажем, как подать заявку на доступ к API, а далее — как получить OAuth-токен.

## Полезные ссылки {#register_usfull_links}

- Документация Яндекс OAuth: [Регистрация приложения](https://tech.yandex.ru/oauth/doc/dg/tasks/register-client-docpage/)


<!--
## Вопросы {#register_questions}

1. **Как Директ узнает, с каким аккаунтом пользователя работает приложение через API?**

    {% list tabs radio %}

    - С помощью ссылки **Callback URL**.

      ![](_assets/incorrect.png) Неверно.

    - По идентификатору приложения, полученного при регистрации на сервисе Яндекс OAuth.

      ![](_assets/incorrect.png) Неверно.

    - С помощью OAuth-токена, указанного в запросе.

      ![](_assets/correct.png)Верно!

    - С помощью логина и пароля пользователя, указанного в запросе.

      ![](_assets/incorrect.png) Неверно.

    {% endlist %}

1. **Для чего нужна регистрация на сервисе Яндекс OAuth?**

    {% list tabs radio %}

    - Чтобы получить OAuth-токен для запросов API Директа.

      ![](_assets/incorrect.png) Ответ неполный.

    - Чтобы получить идентификатор приложения для заявки на доступ к API.

      ![](_assets/incorrect.png) Ответ неполный.

    - Чтобы получить идентификатор приложения для заявки на доступ к API, а затем OAuth-токен для запросов.

      ![](_assets/correct.png)Верно!

    - Регистрация на Яндекс OAuth не обязательна, приложение сразу может работать с API Директа.

      ![](_assets/incorrect.png) Неверно.

    - Чтобы получить доступ к магазину приложений и выбрать нужное для работы.

      ![](_assets/incorrect.png) Неверно.

    {% endlist %}

1. **Как отреагирует сервер API Директа, если в запросе не указан OAuth-токен?**

    {% list tabs radio %}

    - Вернет информацию по всем пользователям, так как токен нужного не указан.

      ![](_assets/incorrect.png) Неверно.

    - Не позволит получить или изменить какие-либо данные пользователей.

      ![](_assets/correct.png)Верно!

    - Заблокирует приложение, потребуется заново регистрировать его на Яндекс OAuth.

      ![](_assets/incorrect.png) Неверно.

    {% endlist %}
-->
