Внешние данные
Внешние данные — цифры и списки из чужих сервисов: курсы валют, погода, статистика рекламы, аналитика. Приложение получает их двумя путями. Открытый API скрипт фрейма вызывает прямо из браузера, а API с секретным ключом вызывает ваш агент, который записывает результат в данные сайта.
Выбор пути зависит от ключа. Ключ в скрипте фрейма видит любой посетитель, поэтому все, что требует секретного ключа, идет через агента.
Во всех примерах API — https://onpress.pro/api/v2, SITE — id сайта (SITE_ID), OP_TOKEN — токен op_XXXX. Эндпоинты данных — в справочнике «Данные».
Из браузера
Скрипт фрейма вызывает внешний API через fetch, как любой скрипт на сайте. Политика безопасности страниц OnPress разрешает запросы к любому адресу по https, а внешний сервис должен разрешать запросы с чужих сайтов заголовками CORS. Так работают открытые API без ключа или с публичным ключом. Например, курс доллара из открытого API Центробанка в зеркале cbr-xml-daily.ru:
fetch('https://www.cbr-xml-daily.ru/daily_json.js')
.then(function (r) { return r.json(); })
.then(function (d) { document.querySelector('.rate').textContent = d.Valute.USD.Value; });
Запрос уходит из браузера каждого посетителя при каждом открытии страницы, поэтому лимиты внешнего API делят все посетители вместе.
Через данные сайта
Когда API требует секретный ключ, данные забирает агент или ваш сервер. Он вызывает внешний API со своим ключом и записывает результат в пользовательский набор запросом PUT /data/{name}, а фрейм выводит набор повторителем. Например, агент кладет дневные визиты в набор dashboard_stats:
curl -s -X PUT "$API/site/$SITE/data/dashboard_stats" \
-H "Authorization: Bearer $OP_TOKEN" -H 'Content-Type: application/json' \
-d '{"items": [{"date": "2026-10-28", "visits": 412}, {"date": "2026-10-29", "visits": 437}]}'
После записи OnPress пересобирает страницу приложения, и посетители получают готовые цифры без запросов к внешнему сервису. Как часто обновлять набор, решает агент: в OnPress нет своего планировщика для таких задач.
Аналитика сайта
Цифры самого сайта отдает API OnPress: трафик страниц — GET /traffic, счетчики Метрики, GA4, Search Console и Вебмастера — справочник «Аналитика». Эти эндпоинты требуют токен, поэтому дашборд аналитики получает их тем же путем через агента и данные сайта.
Вопросы и ответы
Может ли OnPress хранить ключ внешнего сервиса для фрейма?
Нет. Секретных настроек для скриптов фрейма в OnPress нет, ключ хранит агент или ваш сервер.
Почему запрос из фрейма отклоняет браузер?
Внешний сервис не разрешил запросы с чужих сайтов: в его ответе нет заголовка Access-Control-Allow-Origin. Такой API вызывайте через агента и данные сайта.