Перейти к содержимому

Статический сайт

Что понадобится: сайт по адресу http:// или https:// (страница, открытая из файла, не подойдёт) и полная сессия в кабинете Донатти. Публичный ключ читает профиль, цели и статистику. Список донатов он не открывает.

Открыть раздел «Разработчикам»

Откройте раздел «Разработчикам», в блоке «Публичный ключ» нажмите «Выпустить публичный ключ». Укажите адрес, с которого сайт будет обращаться к API: протокол, домен и, если нужно, порт, без пути. Например, https://mysite.example. Нажмите «Выпустить ключ» и скопируйте ключ. Значение остаётся в разделе: его можно скопировать снова.

Ключ можно вставить в код сайта, но видят его все посетители. Проверка адреса защищает только от чужих сайтов в браузере, поэтому ничего секретного за этим ключом нет.

Браузер сам подставляет заголовок Origin с адресом вашего сайта. Если адреса нет в списке разрешённых, API ответит отказом.

const response = await fetch("https://api.staging.donatty.com/v1/goals?status=ACTIVE&limit=1", {
headers: {Authorization: "Bearer dnt_pk_..."},
});
const {items} = await response.json();
console.log(items);

Те же запросы в curl: Origin в них указан вручную, потому что curl сам его не ставит.

Публичный ключ работает только с разрешённого адреса сайта: в примерах ниже Origin указан вручную, из браузера заголовок ставится сам.

Терминал
curl -s "https://api.staging.donatty.com/v1/goals?status=ACTIVE&limit=1" -H "Authorization: Bearer $KEY" \
-H 'Origin: https://mysite.example'
curl -s "https://api.staging.donatty.com/v1/stats/top?period=WEEK&limit=3" -H "Authorization: Bearer $KEY" \
-H 'Origin: https://mysite.example'
curl -s "https://api.staging.donatty.com/v1/stats/total?period=DAY&timeZone=Asia/Novosibirsk" -H "Authorization: Bearer $KEY" \
-H 'Origin: https://mysite.example'
  • raised цели — собранное целью Донатти по всем донатам, включая отклонённые модерацией; цели Donation Alerts и настройки виджета не учитываются, поэтому прогресс на сцене может отличаться.
  • Топ и сумма — все подключённые источники стримера в рублях. Период DAY | WEEK | MONTH | YEAR | ALL_TIME (по умолчанию ALL_TIME) — календарный в зоне timeZone (IANA, по умолчанию Europe/Moscow); граница [from, to): to — начало следующего периода и в сумму не входит.

В raised входит и ручной старт цели — начальная сумма, которую стример задал вручную. Учитывайте её, когда сравниваете raised с суммой донатов.

Браузер скрывает тело ответа, когда адрес сайта не разрешён: вместо origin_not_allowed вы увидите только сетевую ошибку в консоли. Откройте «Настроить ключ» у публичного ключа: в списке адресов должен быть точный адрес вашего сайта с тем же протоколом и портом. После правки нажмите «Сохранить адреса».

Проверять ключ лучше со своего сайта. Если пробуете его в справочнике на этой странице, придётся добавить адрес https://developers.staging.donatty.com в адреса ключа, а для работы вашего сайта это не нужно.

Остальные ошибки собраны в разделе «Ошибки».