meraproject/vendor/amocrm/amocrm-api-library/examples/parse_disposable_token.php

50 lines
1.8 KiB
PHP
Raw Permalink Normal View History

<?php
use AmoCRM\Exceptions\{DisposableTokenExpiredException,
DisposableTokenInvalidDestinationException,
DisposableTokenVerificationFailedException};
include_once __DIR__ . '/bootstrap.php';
$accessToken = getToken();
// Как пример, получим заголовки с реквеста
// И получим нужный нам X-Auth-Token
$token = $_SERVER['HTTP_X_AUTH_TOKEN'] ?? null;
if ($token === null) {
echo 'X-Auth-Token not found';
die;
}
try {
/**
* Одноразовый токен для интеграций, для того чтобы его получить используйте
* метод this.$authorizedAjax() в своей интеграции
* Подробнее: @link https://www.amocrm.ru/developers/content/web_sdk/mechanics
*
* Данный токен должен передаваться в заголовках вместе с запросом на ваш удаленный сервер
* X-Auth-Token: {disposable_token}
* Время жизни токена: 30 минут
*
* Расшифруем пришедший токен и получим модель с информацией
* Подробнее: @see DisposableTokenModel
*/
$disposableTokenModel = $apiClient->getOAuthClient()
->parseDisposableToken($token);
var_dump($disposableTokenModel->toArray());
} catch (DisposableTokenExpiredException $e) {
// Время жизни токена истекло
printError($e);
die;
} catch (DisposableTokenInvalidDestinationException $e) {
// Не прошёл проверку на адресата токена
printError($e);
die;
} catch (DisposableTokenVerificationFailedException $e) {
// Токен не прошел проверку подписи
printError($e);
die;
}