Needle_Ago Ответов: 1

Telegram-бота интеграции для Patreon и дергаться, чтобы просмотреть список участников чата


Всем привет,

Недавно я вошел в сообщество, которое хочет создать Telegram-бота, который должен интегрироваться с подписчиками Twitch и Patreon. Бот уже создан и работает, размещен на Heroku. Мы использовали это Соаток/безголовый-lounge-bot чтобы настроить нашего бота.
Что он делает? Он проверяет, когда пользователь пытается войти в чат telegram, и если у пользователя есть активная подписка на канал Twitch или на Patreon (или и то, и другое, зависит от того, как вы создаете чат), то он разрешает/запрещает доступ к чату. Это работает без каких-либо проблем, но мы также хотим создать команду и запланированное событие, которое проверяет внутри чата, какие пользователи имеют истекшие подписки, а затем пинает их. Проект, который я связал, использует тонкий фреймворк, который никому из нас не известен, и здесь начинаются проблемы. Как мы можем достичь нашей цели? Неужели кто-то так добр, чтобы помочь нам?

Что я уже пробовал:

I already tried to add a new command to the Telegram class, that is dedicated to manage all the events concerned Telegram. The command I added prints how many subscribers has the Twitch channel using the Twitch object created inside the Telegram constructor, but I always had an empty Twitch object (the Twitch object is used to communicate with Twitch API's) so it doesn't work. I can't figure it out how to create the Twitch object correctly to use it to get the info that I want. Also I don't understand where the Telegram class is created, I suppose Slim does it but I don't know in which part of the code. I also tried with Patreon but the result is the same, empty object.

Richard MacCutchan

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

Needle_Ago

Я стараюсь идти более глубоко. Существует класс Telegram, который предназначен для управления всеми событиями telegram в чате. Внутри этого класса используется признак, подключенный к событиям нового сообщения (называется NewMessageTrait). Класс Telegram имеет конструктор, который, помимо всего прочего, заполняет 2 свойства с именами Twitch и Patreon. Эти 2 свойства создаются как объект, объекты определяются внутри класса Twitch и класса Patreon. Моя проблема заключается в том, что когда я пытался использовать эти свойства внутри класса Telegram, они были пусты, поэтому я не могу правильно использовать их методы.
Из-за того, что я не знаю, как работает Slim framework, я не могу понять, когда и где создается класс Telegram и почему я получаю эти 2 объекта всегда пустыми.

Надеюсь, я выразился предельно ясно.

Richard MacCutchan

Извините, но мы понятия не имеем, что такое класс Telegram и что он делает. Вы проверили его документацию, чтобы убедиться, что используете правильные вызовы методов? Вы использовали свой отладчик для отслеживания того, что происходит при запуске кода?

Needle_Ago

Я предоставил ссылку на РЕПО в своем вопросе, вы можете увидеть на github, что делает класс Telegram, он находится в src/HeadlessLoungeBot.
К сожалению, документация очень плохая, и да, я использую отладчик для отслеживания поведения кода, но я не знаю, как работает Slim framework после команды $app->run ();, поэтому отладка для меня не так проста.

Richard MacCutchan

Извините, но если вы не можете показать код, вызывающий проблему, и точно объяснить, что происходит, мы мало чем можем вам помочь.

Needle_Ago

Извините, я не понял, что вы хотите увидеть мой код!
Это простая новая команда "/testTwitch", которую я добавил в класс Telegram:

public function getTwitchSubscribers(int $chatId, int $channelID) {

      $tw = $this->twitch->forChannel(channelID);
      $subs = $tw->getSubscribers();

      return $this->sendMessage(
            'There are ' . count($subs) . ' Twitch users subscribed to this channel.',
            ['chat_id' => $chatId]
        );
    }


Моя проблема в том, что $tw пуст, и если я использую отладчик для печати $this->twitch, он пуст. Но я не могу понять, где в коде создается объект twitch, или, лучше сказать, где создается весь класс Telegram. Еще раз извините за недоразумение!

Richard MacCutchan

"Но я не могу понять, где в коде создается объект twitch, или лучше, где создается весь класс Telegram."

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

Needle_Ago

Я уже отправил ему электронное письмо 3 недели назад, но пока нет ответа. И я полагаю, что он никогда не ответит мне, потому что РЕПО больше не поддерживается, это реальная проблема, иначе я бы попросил реализовать эту функцию. Я новичок в telegram bot, и это самая близкая вещь, которую я нашел, которая использует Twitch и Patreon, написанные на PHP.

Richard MacCutchan

Извините, но я предлагаю вам найти лучший продукт.

Needle_Ago

Я постараюсь, спасибо за терпение!

1 Ответов

Рейтинг:
0

OriginalGriff

Поговорите с людьми, которые его создали: при необходимости поднимите вопрос о проекте: Выпуски · soatok/headless-lounge-bot · GitHub[^] так как либо проект его документации нуждается в пересмотре.

Мы не можем помочь вам в этом: он нуждается в глубоком знании проекта github, который, возможно, использовали или пытались использовать 100 человек. Найти один из них с достаточной глубиной из популяции в 14 000 000 человек на этом участке очень маловероятно.
Так что поговорите с людьми, которые его написали - они будут знать его лучше, чем кто-либо здесь.