Как стать автором
Обновить

Создаём свой оверлей DonationAlerts

Внимание! Данная статья была написана очень давно, поэтому некоторые вещи скорее всего изменились

Если вы уже знаете, что такое DonationAlerts, прыгайте в следующий абзац.

Вкратце, DonationAlerts — это сервис позволяющий отправлять в стрим на YouTube или Twitch сообщения за денюжку, которые показываются поверх стрима и проговариваются ботом.

Оверлей DonationAlerts выглядит так:

image

Эта веб-страница вставляется в стрим и зелёный фон вырезается. (Картинку можно менять)
Мне оверлей не понравился и я начал перерывать их сайт в поисках API, чтобы сделать свой.
Когда я понял что API нет, я написал в поддержку, и… они ответили с подробной «документацией».

Их сайт использует для коммуникации библиотеку Socket.IO.

Для примера я накидал быстрый скрипт:

var socket = io("socket.donationalerts.ru:3001");
socket.emit('add-user', {token: "Ваш токен (содержится в URL каждого виджета)", type: "minor"});
socket.on('donation', function(msg){
  // Ваша функция, обрабатывающая донат
});

Давайте его разберём.

var socket = io("socket.donationalerts.ru:3001");

— подключается к сокету

socket.emit('add-user', {token: "Ваш токен (содержится в URL каждого виджета)", type: "minor"});

— отправляет данные, нужные для получения уведомлений

socket.on('donation', function(msg){
  // Ваша функция, обрабатывающая донат
});

— получает информацию о донате, суёт переменную:

{
	"id": "24335622",
	"alert_type": "1",
	"additional_data": "{\"randomness\":517}",
	"username": "Имя",
	"amount": "50.00",
	"amount_formatted": "50",
	"amount_main": "50.00",
	"currency": "RUB",
	"message": "Сообщение",
	"date_paid": "2017-06-01 11:46:56",
	"emotes": null,
	"_is_test_alert": true
}

Демо на Plnkr

Спасибо, что прочитали!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.