# Настройка Gmail (oAuth2)

{% hint style="info" %}
Для настройки OAuth 2.0 в Google требуется использовать **URL-адрес станции**.\
Самый простой способ — создать DNS-запись на локальном сервере **или** добавить соответствие IP-адреса и доменного имени в файл `hosts` на устройстве, с которого выполняется настройка.
{% endhint %}

### Настройки аккаунта Google

1. Перед началом настройки, необходимо поменять некоторые параметры аккаунта Google. Для этого перейдите на страницу управления ([ссылка](https://myaccount.google.com/)).

<figure><img src="/files/2bysLtU1oRXErRI9sBnX" alt=""><figcaption><p>Страница упрвления аккаунтом Google</p></figcaption></figure>

2. Перейдите в раздел "Безопасность и вход в аккаунт". Убедитесь, что у Вас настроена двухэтапная аутентификация.

<figure><img src="/files/au5pu3MRrKt92cf60BkD" alt=""><figcaption><p>Настройка двухэтапной аутентификации</p></figcaption></figure>

3. Перейдите в консоль Google Cloud, в раздел "**APIs & Services**" ([ссылка](https://console.cloud.google.com/apis/dashboard)). Создайте проект под текущую задачу.

<figure><img src="/files/uuuH5ywnOuEygujmaKoR" alt=""><figcaption><p>Раздел "APIs &#x26; Services" в Google Cloud</p></figcaption></figure>

4. Перейдите в библиотеку APIs (раздел "**Library**").

<figure><img src="/files/tboDSgtNkeQaUX9kWNWS" alt=""><figcaption><p>Раздел "Library" в APIs &#x26; services</p></figcaption></figure>

5. Введите в поиске: "gmail api". Перейдите в карточку Gmail API.

<figure><img src="/files/BMB2ESLiTQnmzxFgC6QX" alt=""><figcaption><p>Gmail API в библиотеке Google Cloud</p></figcaption></figure>

6. Нажмите "**Enable**" для подключения.

<figure><img src="/files/IPqo93Mc94lPkVHb4gbv" alt=""><figcaption><p>Подключение API</p></figcaption></figure>

7. Перейдите на главную страницу **APIs & Services**. Далее "**OAuth consent screen**".

<figure><img src="/files/LyGq12hBqGBGfUTHBLW6" alt=""><figcaption><p>Раздел "OAuth consent screen" в APIs &#x26; Services</p></figcaption></figure>

8. Создайте проект (нажмите "**Get started**"). Заполните произвольное название и Вашу почту. В качестве Audience выберите "**Internal**". Нажмите "**Create**" для завершения.

<figure><img src="/files/ghGVAOUkPQLcrP8BcUsN" alt=""><figcaption><p>Параметр "Audience" в создании проекта</p></figcaption></figure>

9. Вернитесь на главную страницу **APIs & Services.** Далее в раздел "**Credentials**". Нажмите "**Create credentials**". Выберите "OAuth client ID" для создания.

<figure><img src="/files/yuJk8i4wEOUsEPkkRu5l" alt=""><figcaption><p>Создание нового OAuth client ID</p></figcaption></figure>

10. В качестве Application type, выберите "**Web application**". Далее введите произвольное название. Нажмите "**Create**".

<figure><img src="/files/F9TvBP9tlxDYvPNpWvF5" alt=""><figcaption><p>Создание нового OAuth client ID</p></figcaption></figure>

11. Добавьте новый "Authorized redirect URI".

{% hint style="info" %}
Формат:

<mark style="color:blue;">`https://mikopbx.station.com/pbxcore/api/v3/mail-settings/oauth2-callback`</mark>

Замените "mikopbx.station.com" на URl Вашей станции.
{% endhint %}

<figure><img src="/files/WBvyUoqPlyPzfkZYTqnz" alt=""><figcaption><p>Добавление нового URl для перевода</p></figcaption></figure>

12. Будет создан OAuth client. Сохраните ClientID и Client secret себе в заметки. В будущем эти данные понадобятся для подключения.

<figure><img src="/files/SdNmHOiCN9TJXWGDGTFq" alt=""><figcaption><p>Успешно созданный клиент</p></figcaption></figure>

### Настройки в MikoPBX

1. Перейдите в раздел "**Система**" -> "**Почта и уведомления**":

<figure><img src="/files/lE0EfQpY617Ws3VvUEv3" alt=""><figcaption><p>Раздел "Почта и уведомления" в MikoPBX</p></figcaption></figure>

2. Далее, "Настройки SMTP". Заполните следующие параметры:

* **Адрес отправителя, Имя отправителя** - Ваша почта и от какого имени будут отправляться письма.
* **Тип аутентификации** - OAuth2.
* **SMTP логин** - Ваша почта.
* **Провайдер OAuth2** - Google/Gmail.
* **Идентификатор приложения (Client ID), Секретный ключ (Client Secret)** - данные, которые сохранены из Google Cloud (12 пункт из прошлого раздела в этой инструкции).

Все остальные настройки оставьте по умолчанию. Более подробное описание Вы можете найти в главное статье о параметрах почты ([ссылка](/mikopbx/manual/system/mail-settings.md)).

После этого нажмите "**Сохранить**"!

<figure><img src="/files/tF67UywkbZ9n69RNCGHt" alt=""><figcaption><p>Параметры почты для подключения Gmail</p></figcaption></figure>

3. Нажмите на синюю кнопку "**Подключить через OAuth2**". Далее выберите Ваш аккаунт Gmail.

<figure><img src="/files/6Xzy0ThnhJtEMfUG6gyU" alt="" width="375"><figcaption><p>Выбор аккаунта Google</p></figcaption></figure>

4. Подтвердите вход: нажмите "**Continue**".

<figure><img src="/files/DZwfhZ6APDysUXCnT98P" alt="" width="375"><figcaption><p>Продолжения авторизации</p></figcaption></figure>

5. Подтвердите выдачу необходимых разрешений. (Нажмите "**Allow**").

<figure><img src="/files/wZqXelwPjVj94FgrG1ux" alt="" width="375"><figcaption><p>Выдача разрешений</p></figcaption></figure>

При успешной авторизации, вы увидите следующее окно.

<figure><img src="/files/QsWTC0vzfPf2Bu4EfDsf" alt="" width="375"><figcaption><p>Успешная авторизация</p></figcaption></figure>

### Решение возможных проблем

**Access blocked: Authorization Error (**&#x45;rror 400: invalid\_request)

<figure><img src="/files/M4QgQ7axRboSmiD7U9qX" alt="" width="375"><figcaption><p>Ошибка 400: invalid_request</p></figcaption></figure>

Решение: впишите URl адрес станции в Веб-интерфейсе MikoPBX: "**Сеть и Firewall**" -> "**Сетевые интерфейсы**". Перейдите в раздел "Топология сети" и впишите имя хоста в поле "**Внешнее имя хоста вашего маршрутизатора**". (Включите "**Эта станция расположена за NAT маршрутизатором**")

<figure><img src="/files/iLEai8GgoWE0RDD7duvT" alt=""><figcaption><p>Решение проблемы</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mikopbx.com/mikopbx/manual/system/mail-settings/gmail-oauth2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
