Цитатник на Автопилоте в Telegram
В данной инструкции мы покажем как реализовать цитатник в Telegram. Все просто: повторяйте шаги в инструкции и все получится.
Лирическое отступление… Интеграция с Telegram, создание бота и привязка аккаунта ВК должны быть сделаны по соответствующим инструкциям.
План инструкции:
- Интеграция и подключение бота
- Привязка аккаунта к ВК, чтобы не списывались мили и работали условия «Выполнена команда» , «Уровень списка»)
Для чистоты эксперимента я покажу вариант на полях профиля игрока, но также дополню условиями в видео.
- Команда для выдачи цитаты
- Команда для обнуления (в случае привязки ВК)
- Тип цитаты (+бонус)
- Полезные переменные Telegram
Полетели.
Команда для выдачи цитаты
События:
1) Событие: «Написал сообщение в Telegram» с текстом умная мысль
Важно! Ключевик может быть любым нужным вам. В примере цитата выдается в боте. И повторный запуск никак не блокируется, вы можете это сделать самостоятельно по аналогии, как показано в видео и конспекте ниже. Если у вас списываются мили, то проверяйте привязку TG к VK. Ограничение можно настроить на полях игрока, пример как настроить с привязкой показан в видео. Обращайте внимание на название поля игрока.
Опционально добавить условие:
1) Числовая переменная %chat_id% больше 0, т.е. сообщение написано в ЛС боту.
Опционально (если используется в группах каналах) вы можете вместе условия выше использовать условие: переменная %chat_id% совпадает с ID группы (как получить показано в видео)
Опционально:
2) Чтобы ограничить количество попыток добавляем условие: числовая переменная %player.citaty% меньше 3, иначе в реакциях на невыполнение пишем текст, что попытки кончились. Реакции на невыполнение тратят мили.
3) Опционально (для привязки TG к VK) можете делать другое условие для примера выше. Условие: «Выполнена команда» № 0 выполнена меньше 3 раз.
4) Для того, чтобы выдавать цитаты нечасто (например раз в сутки), рекомендуется привязать VK к TG и использовать условие «После выполнения прошло» в примере ниже ограничена частота раз в 5 секунд.
Действия:
1) Опционально (если делаете только на полях игрока) добавляете условие «Изменить поле профиля игрока» с названием citaty(оно должно быть уникальным) и значением увеличенным на 1.
2) Для запроса цитаты добавляем действие «Отправить GET/POST запрос» на адрес
https://andreyscripts.skyjoom.com/quotes.php
Важно! Так же в запросе можно передать параметр typeс числовым значением типа цитаты. По умолчанию: если параметр не задан, то используется цитата из всех источников. Пример в конце статьи.
Важно! Автор скрипта и сервис «Автопилот» не несет ответственность за качество цитат, так что используйте на свой страх и риск.
Следующим действием надо добавить сообщение с переменной: %response% (или %request_response%). В ней будет полный ответ стороннего сайта (например его JSON структура).
3) Временной переменной %success% через JSON PATH достаем cтатус цитаты
%response.success%
Если %success% вернул true, то цитата получена успешно, в противном случае может придумать адекватный текст для пользователя в духе: «Я устал»
4) Временной переменной %text% через JSON PATH достаем текст цитаты
%response.quoteText%
5) Чтобы сформировать адекватный текст в случае ошибки временной переменной %error% c помощью функции случайный текст пишем несколько вариантов текста. Например:
{rand}Я устал|Не хочу говорить|Я сплю|Что нужно?{/rand}
6) Временной переменной %author% через JSON PATH достаем автора цитаты.
%response.quoteAuthor%
7) Чтобы выдать цитату только если она получена с сайта делаем условную переменную %text% со значением:
- Если числовая переменная
%success%равна1, то текст:
{text}%text%|cut|4096{/text}- Иначе текст:
%error%, так как ошибка на сайте и мы выдаем удобочитаемый текст ошибки.
Важно! В видео показаны все дополнительные моменты, но конспект уже содержит все улучшения.
8) Чтобы выдать цитату только если она получена с сайта делаем условную переменную %author% со значением:
- Если числовая переменная
%success%равна1, то текст:
%author%
- Иначе ничего, так как ошибка на сайте
9) Для отправки сообщения игроку используем действие: «Отправить сообщение в Telegram» c текстом:
%text%
%author%
Важно! Для того чтобы сделать ответное сообщение или комментарий в действии «Отправить сообщение в Telegram» добавьте параметр:
reply_to_message_idсо значением%object_id%
10) Для того, чтобы сделать обнуление попыток (только в случае настроек только на полях игрока) делаем отмену таймера этим действием с уникальным названием %club_id%Цитаты (+1 миля к запуску команды).
11) Для того, чтобы сделать обнуление попыток (только в случае настроек только на полях игрока) делаем запуск таймер этим действием с уникальным названием %club_id%Цитаты (+1 миля к запуску команды) в универсальном режиме по наступлению:
23:59
12) Для того, чтобы сделать обнуление попыток (только в случае настроек только на полях игрока) после сработки таймера добавляем поле профиля игрока с названием citatyи переключателем очистить
13) Опционально: для отправки сообщения игроку в личку (будет отправлено только если есть разрешение от бота Telegram) используем действие: «Отправить сообщение в Telegram» игроку %player.tg_id% c текстом:
Попытки очищены
Команда для обнуления (в случае привязки ВК)
Важно! Это команда сделана специально, чтобы можно было тестировать на этапе сборки и обнулять попытки.
События:
1) Чтобы обнулить выполнение команды добавляем событие: «Написал сообщение в Telegram» с любым ключевиком. В примере: 123
Рекомендую добавить условие:
1) Числовая переменная %chat_id% больше 0, т.е. сообщение написано в ЛС боту.
2) Числовая переменная %player.tg_id% содержит ID вашего аккаунта Telegram
Действия:
1) Для отмены добавляем действие «Исключить из списка» с переключателем команды и указываем нужные номера команд через запятую. В примере: 1040781
2) Опционально: для отправки выводим себе сообщение действием: «Отправить сообщение в Telegram» c текстом:
Команды обнулены
Тип цитаты (опциональный параметр)
Для того чтобы получать цитаты определенного типа в запросе добавляем одно из следующих значений:
0 - все источники (по умолчанию)
1 - цитаты из книг
2 - цитаты из фильмов
3 - цитаты из сериалов
4 - цитаты известных и великих людей
5 - цитаты из песен
6 - цитаты из телепередач /шоу
7 - цитаты из компьютерных игр
8 - цитаты из мультфильмов
9 - цитаты из аниме
10 - цитаты из стихотворений
11 -цитаты из спектаклей
12 - цитаты из комиксов
13 - цитаты из самиздата
14 - пословицы и поговорки
15 - притчи
Бонус
Еще один скрипт, который берет цитаты со стороннего сайта
https://andreyscripts.skyjoom.com/quotes_great_people.php
который также возвращает JSON (достаточно заменить только адрес в запросе):
{
"success&qu
ot;: true, "quoteText": "Любовь это соревнование в том, кто принесет друг другу больше радости."
, "quoteAuthor": "Стендаль"}Все просто. Тестируем.
Как мы видим все отлично работает.
Творческих взлётов и успешного внедрения!
Вернуться на главную страницу инструкций