Статический сайт
Что понадобится: сайт по адресу http:// или https:// (страница, открытая из файла, не подойдёт) и полная сессия в кабинете Донатти. Публичный ключ читает профиль, цели и статистику. Список донатов он не открывает.
1. Выпустите публичный ключ
Заголовок раздела «1. Выпустите публичный ключ»Откройте раздел «Разработчикам», в блоке «Публичный ключ» нажмите «Выпустить публичный ключ». Укажите адрес, с которого сайт будет обращаться к API: протокол, домен и, если нужно, порт, без пути. Например, https://mysite.example. Нажмите «Выпустить ключ» и скопируйте ключ. Значение остаётся в разделе: его можно скопировать снова.
Ключ можно вставить в код сайта, но видят его все посетители. Проверка адреса защищает только от чужих сайтов в браузере, поэтому ничего секретного за этим ключом нет.
2. Запросите данные из браузера
Заголовок раздела «2. Запросите данные из браузера»Браузер сам подставляет заголовок 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 с суммой донатов.
3. Если пришла ошибка
Заголовок раздела «3. Если пришла ошибка»Браузер скрывает тело ответа, когда адрес сайта не разрешён: вместо origin_not_allowed вы увидите только сетевую ошибку в консоли. Откройте «Настроить ключ» у публичного ключа: в списке адресов должен быть точный адрес вашего сайта с тем же протоколом и портом. После правки нажмите «Сохранить адреса».
Проверять ключ лучше со своего сайта. Если пробуете его в справочнике на этой странице, придётся добавить адрес https://developers.staging.donatty.com в адреса ключа, а для работы вашего сайта это не нужно.
Остальные ошибки собраны в разделе «Ошибки».