Добавление канала OneDrive
Что подготовить сначала
| Что нужно | Зачем это нужно |
|---|---|
| Аккаунт Microsoft | Для доступа к страницам администрирования Microsoft и авторизации OneDrive |
| Ваш домен ImgHost | Для OAuth callback URL |
| App registration | Для получения Client ID и Client Secret |
| Аккаунт OneDrive | Фактическое место хранения файлов |
Настройка
Шаг 1. Откройте Microsoft Entra ID
- Откройте
portal.azure.com. - Вверху найдите
Microsoft Entra ID. - Если нужная страница не появилась в выпадающем списке, выберите:
text
Continue searching in Microsoft Entra ID- Откройте
Microsoft Entra ID. - Откройте
App registrations. - Нажмите
New registration.
Шаг 2. Зарегистрируйте приложение
На странице New registration заполните:
| Поле | Что ввести |
|---|---|
| Name | Понятное имя, например imgbed-onedrive |
| Supported account types | Выберите по таблице ниже |
| Redirect URI type | Web |
| Redirect URI | https://your-domain.com/api/oauth/onedrive/callback |
Подсказка по типу аккаунтов:
| Ваш сценарий | Supported Account Types |
|---|---|
| Только личный OneDrive | Выберите вариант для personal Microsoft account. |
| Личные и рабочие или учебные аккаунты | Выберите вариант, поддерживающий personal и organizational accounts. |
| Только корпоративный или учебный OneDrive | Выберите вариант для organizational account. |
После заполнения формы нажмите register.

Шаг 3. Скопируйте данные приложения
После создания приложения скопируйте значения со страницы overview:
| Поле Microsoft | Поле ImgHost |
|---|---|
Application (client) ID | Client ID |
Directory (tenant) ID | Tenant ID для organizational accounts |

Шаг 4. Создайте Client Secret
- Откройте
Certificates & secrets. - Нажмите
New client secret. - Введите удобное описание.
- Выберите срок действия.
- Сразу после создания скопируйте
Value.

Шаг 5. Добавьте API permissions
- Откройте
API permissions. - Нажмите
Add a permission. - Выберите
Microsoft Graph. - Выберите
Delegated permissions. - Добавьте:
| Permission | Назначение |
|---|---|
Files.ReadWrite.All | Загрузка файлов, создание папок и удаление файлов |
offline_access | Позволяет ImgHost получить Refresh Token |
User.Read | Читает информацию об аккаунте и квоте |
Шаг 6. Заполните канал OneDrive
В настройках загрузки выберите OneDrive и заполните:
| Поле ImgHost | Что ввести |
|---|---|
| Channel name | Понятное имя, например Main OneDrive |
| Client ID | Microsoft Application (client) ID |
| Client Secret | Скопированное значение Client Secret Value |
| Tenant ID | Выберите по таблице ниже |
| Refresh Token | Пока оставьте пустым |
| Root directory | Необязательно. По умолчанию imgbed. |
| Note | Необязательно |

Как заполнить Tenant ID:
| Выбранный тип аккаунтов | ImgHost Tenant ID |
|---|---|
| Personal accounts | consumers |
| Personal + organizational accounts | common |
| Только текущая организация | Directory (tenant) ID |
Шаг 7. Получите Refresh Token
- В ImgHost нажмите
Get Token. - Войдите в Microsoft-аккаунт, который хотите подключить.
- Подтвердите запрос авторизации.
- На callback-странице появится
Refresh Token. - Скопируйте его.
- Вернитесь в ImgHost и вставьте его в поле
Refresh Token.

Шаг 8. Сохраните канал
Когда все поля заполнены, сохраните канал.
Короткий сценарий
text
Open portal.azure.com
-> Search for Microsoft Entra ID
-> Open App registrations
-> Register a new app
-> Fill Name / Supported account types / Web redirect URI
-> Register
-> Copy Application (client) ID
-> Check the callback URL in Authentication
-> Create a Client Secret in Certificates & secrets
-> Add permissions in API permissions
-> Fill Client ID / Client Secret / Tenant ID into ImgHost
-> Click Get Token
-> Copy the Refresh Token from the callback page
-> Paste it back into ImgHost and saveСсылки
- Microsoft Entra app registration: https://learn.microsoft.com/en-us/entra/identity-platform/quickstart-register-app
- Microsoft identity platform authorization code flow: https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow
- Microsoft Graph user authentication: https://learn.microsoft.com/en-us/graph/auth-v2-user