# OAuth-токен для Яндекс Метрики

### Зарегистрируйте приложение в Яндекс OAuth

1. Перейдите на [страницу регистрации](https://oauth.yandex.ru/client/new) приложений Яндекса.
2. Войдите в свой аккаунт Яндекса, если вы еще не авторизованы.

### Создайте новое приложение

- **Название приложения** — укажите понятное название вашего приложения или проекта;
- **Описание** — кратко опишите назначение приложения (опционально);
- **Платформы** — выберите платформу, например, **Веб-сервисы**;
- **Callback URI** — если требуется, укажите URL для обратного вызова (для серверных приложений это не обязательно).

### Укажите права доступа (Scope)

1. В разделе **Доступ к данным** выберите необходимые права для работы с Яндекс Метрикой: 
    - **Яндекс Метрика (metrika)**: 
        - **Метрика: чтение статистики** — для доступа к статистике;
        - **Метрика: редактирование счетчиков** — если нужно создавать или изменять счетчики;
        - **Метрика: управление конфигурацией** — для управления целями, фильтрами и прочими настройками;
2. Убедитесь, что выбранные права соответствуют вашим потребностям.

### Сохраните приложение

1. Нажмите кнопку **Создать приложение**.
2. После сохранения вы будете перенаправлены на страницу с информацией о вашем приложении.

### Получите идентификаторы

- **ID приложения (Client ID)** — уникальный идентификатор вашего приложения;
- **Пароль приложения (Client Secret)** — секретный ключ вашего приложения.

<p class="callout warning">**Важно!** Бережно храните **Client Secret** и не передавайте его третьим лицам.</p>

### Получите OAuth-токен

Существует два способа получения OAuth-токена: вручную через веб-интерфейс или программно через OAuth-протокол.

#### Способ 1: Получение токена через веб-интерфейс (для личного использования)

1\. Перейдите по ссылке для получения токена, заменив **YOUR\_CLIENT\_ID** на ваш **Client ID**:

<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative" id="bkmrk-"><div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative"><div class="overflow-y-auto p-4" dir="ltr">  
</div></div></div>```HTML
https://oauth.yandex.ru/authorize?response_type=token&client_id=YOUR_CLIENT_ID&scope=metrika
```

2\. Выберите аккаунт Яндекса, для которого хотите получить токен.

3\. Разрешите доступ приложению, нажав кнопку **Разрешить**.

4\. После этого вы будете перенаправлены на указанный **Callback URI**, а в адресной строке будет содержаться ваш **OAuth-токен**.

Пример адресной строки:

```HTML
https://your-callback-url.com/#access_token=YOUR_OAUTH_TOKEN&token_type=bearer&expires_in=31536000
```

5\. Скопируйте значение **access\_token** — это и есть ваш OAuth-токен.

#### Способ 2: Получение токена программно через OAuth-протокол

1\. Сформируйте запрос на получение кода авторизации:

```HTML
https://oauth.yandex.ru/authorize?response_type=code&client_id=YOUR_CLIENT_ID&scope=metrika
```

2\. Получите код авторизации после разрешения доступа.

3\. Обменяйте код на токен с помощью POST-запроса к API:

```
POST https://oauth.yandex.ru/token
```

Параметры запроса:

- grant\_type=authorization\_code;
- code=AUTHORIZATION\_CODE (полученный на предыдущем шаге);
- client\_id=YOUR\_CLIENT\_ID;
- client\_secret=YOUR\_CLIENT\_SECRET.

Пример запроса с использованием curl:

```
curl -X POST https://oauth.yandex.ru/token \
  -d 'grant_type=authorization_code' \
  -d 'code=AUTHORIZATION_CODE' \
  -d 'client_id=YOUR_CLIENT_ID' \
  -d 'client_secret=YOUR_CLIENT_SECRET'
```

В ответе вы получите JSON с вашим **OAuth-токеном**:

```JSON
{
  "access_token": "YOUR_OAUTH_TOKEN",
  "expires_in": 31536000,
  "token_type": "bearer"
}
```

<div class="dark bg-gray-950 contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative" id="bkmrk-%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D0%B0-%28%D0%BE%D0%BF%D1%86"><div class="overflow-y-auto p-4" dir="ltr"><span style="color: #222222; font-size: 2.333em;">Проверка токена (опционально)</span>  
</div></div>Вы можете проверить работоспособность токена, отправив тестовый запрос к API Яндекс Метрики:

```HTML
GET https://api-metrika.yandex.net/management/v1/counters
```

Добавьте заголовок авторизации:

```
Authorization: OAuth YOUR_OAUTH_TOKEN
```

Пример запроса с использованием curl:

```
curl -H "Authorization: OAuth YOUR_OAUTH_TOKEN" \
https://api-metrika.yandex.net/management/v1/counters
```

Если токен действителен, вы получите список ваших счетчиков.

### Используйте OAuth-токен в вашем приложении

1. Сохраните токен в безопасном месте, например, в настройках вашего приложения или бота.
2. Передавайте токен в заголовках **Authorization** при запросах к API Яндекс Метрики.

### Важные замечания

- **Безопасность** — никогда не публикуйте ваш OAuth-токен и **Client Secret** в открытых источниках или репозиториях;
- **Срок действия токена** — по умолчанию токен действует один год (**expires\_in**: 31536000 секунд). По истечении срока потребуется получить новый токен;
- **Отзыв токена** — вы можете в любой момент отозвать токен в настройках своего аккаунта Яндекса в разделе **Приложения с доступом к аккаунту**.