Jourloy
@Jourloy
NodeJS разработчик

Как с помощью JS узнать, что на твич аккаунт зафоловились?

Есть бот на JS использующий TMI.js для работы с твичом. Ни в документации по API твичу, ни в документации по API TMI.js найти не смог информацию о фолловерах, но очень интересно, ведь другие боты (Streamelements, например) как-то узнают о новых фолловерах. У TMI.js в разделе EVENTS есть все, что угодно, кроме информации о новых фолловерах

Когда человек пишет в чат о нем известна только вот эта информация:
{
  'badge-info': null,
  badges: { broadcaster: '1' },
  'client-nonce': 'скрыл_на_всякий_случай',
  color: '#FF4500',
  'display-name': 'JOURLOY',
  emotes: null,
  flags: null,
  id: 'скрыл_на_всякий_случай',
  mod: false,
  'room-id': 'скрыл_на_всякий_случай',
  subscriber: false,
  'tmi-sent-ts': 'скрыл_на_всякий_случай',
  turbo: false,
  'user-id': 'скрыл_на_всякий_случай',
  'user-type': null,
  'emotes-raw': null,
  'badge-info-raw': null,
  'badges-raw': 'broadcaster/1',
  username: 'jourloy',
  'message-type': 'chat'
}
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
Jourloy
@Jourloy Автор вопроса
NodeJS разработчик
У твича сейчас есть webhooks, там есть и ивент с фолловерами. Ссылка на документацию

Старое решение
Так и не найдя нормального ивента, я сделал возможно костыль, но пока это лучший из вариантов.
Вот немного js и псевдокода:
let param1 = [];
let param2 = [];
setInterval(() => {
    если первый параметр пустой, то записываем текущих подписчиков в два параметра
    иначе
        записываем текущих подписчиков в первый параметр
        сравниваем два массива, если есть разница в большую сторону - находим подписавшегося
        реагируем в чате на подписку
        записываем текущих подписчиков во второй параметр
}, 500);

Стоит отметить, что при запросе у твича списка подписчиков, нужно сортировать по desc, чтобы в самом начале списка были новые, а в конец уходили старые. Это важно, так как если они будут сортироваться по другому, то после 100 фолловера (а это максимальное кол-во при запросе) данный код работать не будет

Спасибо Сергей Карбивничий, что подсказал посмотреть Get Users Follows
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
subscriber: false, Скорее всего это - является ли данный человек подписчиком. В данном случае - нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы