Вернуться к документации

Быстрый старт Outbound

Первое HTTP-задание через API: токен, регион, отправка, результат и сохранённый ответ.

Открыть как Markdown
На этой странице

Подготовка

Создайте аккаунт и API-токен. Подготовьте HTTPS-получателя под своим контролем, доступного из выбранного региона, возвращающего 2xx и безопасный демонстрационный ответ. Входящий Сервер и CLI не нужны.

В Bash задайте переменные:

  • ADAL_API_URL — https://api.adal.cloud, без завершающего слеша.

  • ADAL_API_TOKEN — секрет API-токена.

  • ADAL_IDEMPOTENCY_KEY — выбранный один раз ключ этой операции, например docs-first-send-1. Для новой операции нужен новый ключ; при повторе неопределённой отправки старый ключ сохраняется.

Не копируйте реальные значения токена в Git, скриншоты или логи. Публичный API использует HTTPS.

Получите регион

curl --fail-with-body --silent --show-error \ --header "Authorization: Bearer $ADAL_API_TOKEN" \ "$ADAL_API_URL/outbound/regions"

Выберите ID из regions (с заглавными буквами, как в ответе API) и задайте его как ADAL_REGION_ID. Не используйте придуманный UUID или страну вместо идентификатора.

Отправьте задание

Замените https://receiver.example/webhook вашим тестовым конечным URL. aGVsbG8= кодирует байты hello. В примере сохранение ответа включено явно для следующего шага; его сохранённые байты будут учтены в трафике.

curl --fail-with-body --silent --show-error \ --request POST "$ADAL_API_URL/outbound/requests" \ --header "Authorization: Bearer $ADAL_API_TOKEN" \ --header 'Content-Type: application/json' \ --data-binary @- <<JSON { "region_id": "$ADAL_REGION_ID", "method": "POST", "url": "https://receiver.example/webhook", "headers": {"Content-Type": ["text/plain"]}, "body": "aGVsbG8=", "idempotency_key": "$ADAL_IDEMPOTENCY_KEY", "save_response_body": true } JSON

Успешный 202 содержит request_id и received_at. Сохраните фактический ID в ADAL_REQUEST_ID. 202 ещё не доказывает HTTP-вызов или его успех.

Прочитайте результат

curl --fail-with-body --silent --show-error \ --header "Authorization: Bearer $ADAL_API_TOKEN" \ "$ADAL_API_URL/outbound/requests/$ADAL_REQUEST_ID"

Проверьте журнал в API или Outbound → Requests в кабинете. При received/delivering прочитайте позднее; не создавайте новое задание ради обновления статуса. Если запись ещё не появилась, перепроверьте ID и повторите чтение. В карточке откройте сводку и проверьте попытку и фактический результат тестового получателя. HTTP-успех не является доказательством его бизнес-транзакции.

Получите сохранённый ответ

curl --fail-with-body --silent --show-error \ --header "Authorization: Bearer $ADAL_API_TOKEN" \ "$ADAL_API_URL/outbound/requests/$ADAL_REQUEST_ID/http"

При доступной сводке выберите завершённую попытку из snapshot.attempts, сохраните её attempt_id как ADAL_ATTEMPT_ID и скачайте тело:

curl --fail --silent --show-error \ --header "Authorization: Bearer $ADAL_API_TOKEN" \ --output response-body.bin \ "$ADAL_API_URL/outbound/requests/$ADAL_REQUEST_ID/attempts/$ADAL_ATTEMPT_ID/response/body"

Проверьте успешное завершение curl, байты тестового ответа и признаки read_complete/body_truncated в сводке. Доступность файла не означает, что исходный ответ прочитан целиком.

Если ответ постановки потерян

Повторите тот же POST с тем же ADAL_IDEMPOTENCY_KEY. Повтор может получить новый ID и стать duplicate со ссылкой duplicate_of на оригинал. Продолжайте разбор оригинала; дубль не имеет нового собственного HTTP-исполнения.

Справочник отправки, журнал и статусы, диагностика, HTTP-данные и ошибки скачивания.

Связанная документация