Читать книгу «Telegram. Книга 4. Часть 1» онлайн полностью📖 — Елены Бровкиной — MyBook.
image

Создаем Telegram бота ChatGPT

Сейчас я хочу рассказать как создать бот, который будет находиться в Telegram и мог отвечать умными словами, а кроме того генерировать картинки.

Захожу на платформу https://leadteh.ru/

После стартового блока я создаю еще один:


Вставляю картинку и в описании пишу:



Далее создаю кнопки, которые будут отправлять в различные разделы.

1 кнопка:



Затем кликаю Настройка клавиатуры.

Здесь выбираю Telegram и кликаю Сохранить:



После этого, я около кнопки Получить ответ кликаю на Плюсик и Цепочка сообщений:



Кликаю на кнопку Текст, пишу в поле:



Опускаюсь ниже. Здесь выключаю, так как кнопок и ответа не будет.



Однако будет переменная, в которую попадет запрос. Поэтому здесь я включаю и пишу:



Сейчас я добавлю блок и во вкладке ЕЩЕ:



Далее Специальные и выбираю:



Этот блок будет обрабатывать запрос и давать ответ.



Он немного отличается. Теперь я захожу в Документацию ChatGPT.

Здесь нужно зарегистрироваться https://platform.openai.com/docs/api-reference/introduction

Затем спускаюсь вниз и возьму вот эту ссылочку:



Затем ее вставляю в поле URL. На данную ссылку я буду ссылаться.

Метод, выбираю Пост и выбираем формат:



Я в данный момент выбираю первый.

Здесь же можно ознакомится с параметрами, которые нужно отправлять, а можно скопировать что есть:



В поле его вставляю и проверяю та ли стоит переменная:



У блока http есть команда Продолжить, которая срабатывает мгновенно и могу перейти.

А этот ползунок определяет какое количество секунд пользователь останется в этом блоке прежде чем автоматически перейти по команде Продолжить:



Это для того чтобы получить ответ от той ссылке на которую отправляется запрос.

Теперь добавлю заголовок. Я обязательно должна указать авторизацию которую от меня требуют. К примеру так:



Также очень важно пройти авторизацию. Поэтому я создаю второй заголовок и вставляю значения:



А вот вместо этого, нужно добавить ключ, который можно получить в личном кабинете. Для этого кликаем на Create New secretkey:



Вот он ключ:



Я его копирую и вставляю в поле после значения baerer:



Протестировав, я прошла очень быстро блок не получив ответа. Но для этого мне нужно понять, какой ответ мне нужен.

Для этого я включаю:



А Отправлять в запросе данные, отключаю.

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

Поэтому в блоке http есть красная кнопка, но это не кнопка, а команда по которой пойдет пользователь, если ответ не придет. Я кликаю на плюсик. Цепочка сообщений:



Здесь в поле пишу: Нет отчета от сервера и перенаправляю на главный блок:



Задержку я поставила 20 секунд, этого достаточно и вот получаю ответ:



Что здесь написано мне поможет расшифровать сервис.

Расшифровщик запросов JSON: https://jsonformatter.org/

Вот какой ответ мне прислал бот:



Если перейду в режим Form, то здесь увижу какое количество токенов использовано для вопроса, для ответа. Здесь так же увижу ответ от искусственного интеллекта, который могу получить:



Я кликаю на текст и формируется строчка:



Я ее копирую, перехожу в блок http, включаю Записать ответ и вношу переменную.



Вместо стрелочек я ставлю точки и придумываю переменную, в которую будет попадать ответ от бота.

Теперь в продолжении цепочки сообщений я пишу:



На этом блоке могу сделать кнопку Главное меню и соединить ее с главным блоком, а чтобы не запутаться, могу добавить кнопку Сценарий:



И выбираю Главный сценарий:



Теперь в блоке http отключаю Выводить тело ответа в чат, чтобы в Боте не видеть эти сообщения.

Я возвращаюсь в главное меню (цепочка сообщений), добавляю кнопку Сгенерировать изображение:



Я ее тоже делаю инлайн и кликаю Сохранить. Затем добавляю еще один блок:



Имя переменной ставлю pront_image, а запрос для генерации такой:



После этого я направлю на другой блок:



Нижний блок http буду сейчас перенастраивать:



Пока оставила Ответ в чате. Захожу в документацию ChatGPT, копирую ссылку:



Вставляю ее в строку URL блока http. Здесь уже задержку можно указать побольше, 40 секунд.

Вот получила от бота ответ в 2 вариантах.

1 вариант:



2 вариант:



Можно использовать любой вариант. Копирую строку, перехожу в блок и буду использовать 2 переменные:




Выводить текст в чат, отключаю. Также можно создать 2 блока с одной переменной:



Картинки можно скачивать, а ссылки своеобразные и их использовать нельзя.

TELEGRAM бот с реферальной системой

Сегодня я буду создавать вот такую штуку:

Захожу в конструктор ботов https://leadteh.ru/

В создании такого бота есть 3 основных инструмента:


1. Ссылка для приглашения рефералов. Ее я нахожу в разделе Помощь. Кликая в левом нижнем углу на Знак вопроса. Нахожу вкладку:



Здесь 2 ссылки. я хочу посмотреть их отличие, поэтому я их копирую. В конструкторе создаю новый блок, кликаю на кнопку Текст и вставляю туда эти ссылки:



Теперь перехожу в бот, чтобы посмотреть как ссылки отобразятся:



Они обе приглашают, но 2 ссылка – сразу запускается бот, а 1 – предлагается открыть его через браузер. Можно использовать и ту и другую. Также я могу приглашать людей на дополнительные сценарии. В этих формулах есть скобки, в которые можно вставить ID нашего сценария.

Для этого захожу в конструктор. Создаю новый сценарий, кликаю в правом нижнем углу и даю ему название:



А в адресной строке я могу взять ID данного сценария:



Теперь в скобки я его вставляю:



Перезапускаю бот и смотрю, что произойдет. Вижу:



1 ссылка сломалась, 2 немного изменилась и если я по ней кликну, то сразу запустится бот и я попаду в дополнительный сценарий.

Это очень удобный инструмент для выведения статистики либо назначения пользователям определенного тега.

Для того чтобы 1 ссылка не ломалась есть формула:



Отследить рефералов можно кликнув на вкладку Списки. Контакты.

Столбец Рефер – пригласивший. Есть формула:



Она помогает вывести рефералов в Боте, чтобы пользователь увидел кто его реферал.

Если в скобочках ничего не писать, то рефералы будут только 1 линии, но можно указать число и любой тэг, к примеру, Купил.

Ниже формулы, которые выводят определенных линий рефералов, а также по количеству.

Также я могу выводить количество рефералов всех уровней:



Далее идет формула, которая помогает получить количество рефералов на определенном уровне.

А также формула, которая помогает увидеть своего рефера (пригласившего):



Я ее копирую и 3 формулу.

Вот сюда это все вставлю:



Вот как это отображается в боте:



Здесь есть тот кого пригласили, а пригласившего нет. Рядом картинка – если тот же самый бот перезапустит тот, кого пригласили. Он видит своего рефера, но рефералов пока нет. Он еще никого не приглашал, а в бот попал по чьей – то ссылке.

Теперь поговорим о другом инструменте, который позволяет работать с рефералами – это блоки.

Эти блоки:



Определяют условия. Например, наличие рефералов можно увидеть в блоке Условие:



В блоке созам кнопку Получить бонус, сделаю ее инлайн. Направлю на блок Условия, который будет проверять, имеет ли контакт, который кликает эту кнопку определенное количество рефералов, к примеру, 1:



Если да, отправлю на один блок, если нет – на другой:



И отправляю его на предыдущий блок, чтобы набрал нужное количество рефералов.

Переключатель работает также.

Вот как это работает в боте:



Таким образом я смогу разграничить пользователей.

Но есть еще 3 очень важный инструмент – взаимодействия между пользователями внутри Бота. Допустим, я как рефер, приглашаю человека и хочу, чтобы бот мне автоматом начислил какое – то количество балов. Также, к примеру, я хочу этими баллами поделиться с другим пользователем с рефералом, которого я пригласила.

Для этого в базе знаний есть такой раздел:



Кликаю на него. Контакты и вижу, что здесь тоже есть реферальная система:



Кликаю на нее:



Если использовать API, то можно не просто получить рефералов либо рефереров, но и отправить определенное количество монет.

Бонусы за рефералов в TELEGRAM боте

Бонусы могут начисляться вручную и автоматически. Пользователь кликает на кнопку Получить бонус, а бот проверяет, за сколько рефералов он уже получил бонусы, за сколько еще не получил и вот за это количество и начисляет ему баланс автоматически.

Теперь все по порядку.

1 вариант – Ручной режим.

У меня есть бот с кнопкой Получить бонус. Я хочу, кликнув на нее, понять есть ли у меня реферал и если есть, то получить за него начисление.

Я захожу в раздел Помощь. Реферальная система бота и выбираю сейчас 5 формулу:



Она подтягивает актуальное количество рефералов определенного уровня. Здесь в скобочках указан 20 уровень, а если я поставлю 1, то рефералы будут считаться только данного уровня.

Я создаю блок, кликаю Интеграции. Операция над переменной:



Кликаю на него, в поле Значение вставляю скопированную формулу:



В скобках я пишу 1. Придумываю имя переменной.

Затем добавляю цепочку сообщений, чтобы протестировать:



В настройках пишу: Результат и вывожу переменную:



Если я сейчас кликну на кнопку Получить бонус, то результат 0. Начислять баллы не буду. К этому тоже нужно быть готовым.

Для того чтобы отслеживать сколько у пользователя рефералов, я создаю блок Условие:



Кликаю на него, выбираю:



Ставлю: меньше 1:



Если Да, то пишу, что недостаточно рефералов:



Если у пользователя другое условие, больше 1, то по ветке Да создаю еще условие. Здесь буду проверять в первый раз он получает начисление или нет. Выбираю:



Пишу название:



Кликаю Enter. Если у пользователя нет этого тега, он идет по ветке Нет.

Здесь я добавляю блок Операция над переменной. Сразу сделаю Тэг, чтобы в следующий раз он пошел по другой ветке:



Кликаю на блок Операции над переменной, где переменная первый уровень. Здесь формируется число (любое) и с этим числом я должна произвести какие-то математические выражения. Если у меня 1 реферал, то я за него получу 100 рублей (баллов), а если 5 рефералов, то я должна получить 500 рублей.

Следовательно в блоке Операции над переменной, выбираю:



Здесь добавляю 2 локальные переменные:



А в значении пишу:



Затем заполняю:



После этого можно добавить блок Цепочка сообщений, где сообщаем о начислении баллов:



Затем добавлю кнопку Главное меню и добавлю сценарий, где выбираю Главный сценарий.

Теперь я продублирую блок Операции над переменной с переменной первый уровень и поменяю название на 1 уровень получено, а формула будет таже:



В тот момент, когда пользователь пройдет сквозь этот блок, здесь формируется число рефералов и попадет в переменную один уровень получено. Таким образом в эту переменную первый уровень получено, попадет то количество рефералов, за которые пользователь получил начисление. А когда он в следующий раз придет, я могу брать эту переменную и использовать как прошлое число.

После блока Условие, который проверяет наличие тега, он направит по ветке Да. Я могу сделать такую проверку. Добавлю блок Операция над переменной, выберу математическое выражение 2.0. Добавлю локальную переменную, которая называется 1 уровень получено, а также возьму еще 1 локальную переменную фактическое количество рефералов и сделаю вычисление:



В данной переменной будет разница между фактическим и полученным.

Далее поставлю блок Условие, чтобы лишний раз не назначать баллы:



Здесь я выбираю:



И делаю настройки:



Если хотите настроить не баллы, а рубли, то после имени переменной нужно написать слово – рублей. Например так: {{$ball}} рублей.

То здесь ему нет смысла чего – то начислять, так как у него нет рефералов. А ему отправлю сообщение, что у него нет новых рефералов.

Здесь меняю условия:



В боте это будет выглядеть так:



Если я войду в Главное меню и сразу кликну опять на кнопку Получить бонус, то мне бот ответит:



Но в случае, если у пользователя будет больше рефералов, то должны проделаться следующие вычисления.

У меня есть предыдущий блок, который знает новых рефералов. Он берет и вычитает, получает переменную 1 уровень новая. У пользователя если больше 1 рефералов, то он попадает сюда и я буду использовать переменную 1 уровень новая. это X и это буду умножать на 100 и прибавляю текущее значение переменной баллы:



Таким образом бот будет знать новое количество рефералов и данное число умножать на 100 и прибавлять к новым баллам. После всех этих вычислений я также буду использовать блок Операция над переменной, в которой формируется переменная получен 1 уровень с текущим количеством всех рефералов.

Можно добавить блок Цепочка сообщений:



И здесь написать:



И возвращаюсь в Главный сценарий.



Когда появляется новый реферал, появляется уведомление. Этими уведомлениями можно управлять. Кликаю в боте на Настройки:



Дополнительно:



Здесь включена функция:



И Глубина указана до 10 уровня. Ее можно ограничить или отключить уведомления.

Можно сделать собственное уведомление, прописав его в этом поле.

2 вариант. Автоначисление баллов за рефералов.

Захожу в раздел Авторассылки и кликаю Создать первую:



Даю имя, выбираю Telegram:



Могу добавить фильтр Имеет определенное количество рефералов:



Если я поставлю вот здесь галочку, то бонус будут получать только за 1 линию. Если не ставить, то будут получать за всех рефералов.