avadim / yandex-cloud-translate-php
v1.1.3
2024-03-23 18:05 UTC
Requires
- php: ^7.4|^8.1
- ext-curl: *
- ext-json: *
- ext-mbstring: *
README
Аутентификация библиотеки в API возможна двумя способами:
- С помощью oAuth-токена
- С помощью API-ключа.
Если заданы и oAuth-токен, и API-ключ, то будет использоваться API-ключ.
oAuth-токен
ВАЖНО: Время жизни oAuth-токена - 1 год, затем его надо обновить.
OAuth-токен необходим для авторизации в Yandex Cloud пользователя с аккаунтом на Яндексе: пользователь обменивает OAuth-токен на IAM-токен.
Получить OAuth-токен для работы с Yandex Cloud можно с помощью запроса к сервису Яндекс OAuth.
- На странице биллинга убедитесь, что платежный аккаунт находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.
- Получите идентификатор любого каталога, на который у вашего аккаунта есть роль editor или выше.
- Получите oAuth-токен, необходимый для получения IAM-токенов (сам IAM-токен будет обновляться автоматически в библиотеке): на странице https://cloud.yandex.ru/docs/iam/concepts/authorization/oauth-token перейдите по ссылке для запроса к сервису Яндекс OAuth, и на странице отразится токен, который надо записать
$ya = new avadim\YandexCloud\Auth\Auth($oAuthToken); $tr = new \avadim\YandexCloud\Translator\Translator($ya, $folderId); var_dump($tr->translate('<span>красная</span> корова', 'en', null, true)); var_dump($tr->getStats());
API-ключ
ВАЖНО: Аутентификация через API-ключ возможна только для некоторых сервисов, т.к. этот вариант считается менее безопасным. Список сервисов можно посмотреть здесь: https://cloud.yandex.ru/docs/iam/concepts/authorization/api-key
Получение ключа:
- В консоли управления выберите каталог, которому принадлежит сервисный аккаунт.
- Перейдите на вкладку Сервисные аккаунты.
- Выберите сервисный аккаунт и нажмите на строку с его именем.
- Нажмите кнопку Создать новый ключ на верхней панели.
- Выберите пункт Создать API-ключ.
- Выберите алгоритм шифрования.
- Задайте описание ключа, чтобы потом было проще найти его в консоли управления.
// 1st way $ya = new avadim\YandexCloud\Auth\Auth(null); $ya->setApiKey($apiKey); $tr = new \avadim\YandexCloud\Translator\Translator($ya, $folderId); // 2nd way $ya = new avadim\YandexCloud\Auth\Auth(null); $tr = new \avadim\YandexCloud\Translator\Translator($ya, $folderId); $tr->useApiKey($apiKey); var_dump($tr->translate('<span>красная</span> корова', 'en', null, true)); var_dump($tr->getStats());