Трибуна
Igor Volokitin
1087

HappySecretSantaBot v2 — теперь даже звонит

Хоу-хоу-хоу :) Прошел год с момента релиза первой версии (и моей статьи на VC о ней) моего телеграм бота, который делает самый сказочный праздник Новый Год еще немножечко ярче.
В закладки

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

Главное, чтобы вы оба были из одной страны, и «вашему Санте» находится тоже персональный Санта для него, и так по цепочке, так и в пределах своей собственной команды.

Немного о первой версии

Честно говоря, этого бота год назад я сделал ради лишь того, чтобы поиграть с ребятами на своей прошлой работе, и тогда решил написать статью на VC. Результат действительно удивил, поскольку я проснулся ночью от множества сообщений о том, что «бот лежит, подымите, мы хотим играть».

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

По статистике, в том году я собрал за один месяц (со 2 декабря по 31 декабря) 5 000 человек (повторюсь, я не вкладывался в рекламу). Потом со мной записал мини-интервью один блогер, который записывает уроки по PHP на свой YouTube-канал (и кстати круто учит).

Весь декабрь я был в эйфории, особенно когда смотришь статистику, и там каждую минуту по 10 человек приходит. Тебе пишут в личку чтобы узнать кто был его Сантой, чтобы устроить разборки на работе, почему это «этот Санта» не подарил подарок? :) Было много людей которые кидали звонок ближе к ночи, и писали: «а мне точно подарят подарок?», «а можно мне другого Санту? Мне выпал мой босс» и т.д.

В таком образе я пробыл крутой декабрь 2018 года :) В конце декабря я сделал рассылку между всеми пользователями, чтобы они передали одной сообщение своему Санте (интересно была статистика реальных получений подарков). Увидел, что очень много человек, которые играли одиночную игру писали что-то типа: «спасибо большое, то что я и хотел))» и всё в таком ключе. Было конечно же, где желали не самого хорошего своему Санте, не без этого :)

Итак: в этом году я решил зарелизить раньше, чем в том году, поскольку многие уже в октябре писали, что уже хотят поиграть, под конец октября таких сообщений стало еще больше, а я в это время во всю работал над ботом. Ведь я не хотел по новой использовать тот же код, что был в прошлом году (один файлик index.php с кучкой if непонятно как работающий).

В этом году я решил сделать всё профессиональнее, не хостинг, а VPS с докером и всеми этими прелестями жизни (без которых конечно же можно было бы и обойтись :)) Заюзать фреймворк, который написан специально для создания чат-ботов. Но наверно статья не о реализации, и может (?) для этого понадобится написать отдельную статью. Так что перейдем к тому, что же добавилось в новом боте.

Он умеет звонить! 🎅📞

Да, он научился звонить :) Вы указываете номер телефона на который должен пойти звонок, и Вам звонит Санта (в течение скорого времени, зависит от очереди желающих). Для этого в боте необходимо воспользоваться командой /call. Санта звонит на этот номер и ведет «беседу» (в основном рассчитано на детей конечно же), Санта спрашивает, что же хочет человек на Новый Год, в это время, когда отвечают что же хотят, Санта это запоминает и присылает после того как совершился звонок, вместе с самим аудио диалога на память (вдруг ребенок захотел уединиться и заказать у Санты то, что не должны знать родители?) :)

Также Санта спрашивает знает ли ребёнок стишок? Если он говорит что то на подобии "да", то Санта просит рассказать стишок, если слышит "нет", то просит рассказать, что хорошего ребёнок сделал в этом году? Примерно так это и работает :) Есть несколько НО:

1) Санта звонит только в пределах РФ, Украины, Израиля, Азербайджана и Узбекистана. Возможно, список будет расти

2) Звонок платный :)

Игра в комнатах сохранилась, теперь можно начать новую игру ✅

В том году это был действительно хайповый режим, за счет которого бот собрал внушительное количество игроков. Играли «комнаты», в которых было 50+ человек (это меня прям удивляло, честно). Но: в том году нельзя было начать вторую игру (так как я считал, что Санта должен быть один в году, такой вот для меня это праздник), а в этом году можно начать играть по новой.

Это реально за счёт того, что для второй игры нужно будет вступить в «платную комнату», или создать платную комнату. Вступить в платную комнату — бесплатно (потому что ее уже кто-то купил (ваш КЭП)), создать её — уже немного платно (всего 3$)

Далее по малому. Где-то текст поменял, что-то где-то убрал лишнее. В этом году я хотел сделать удар на звонки от Санты, и переписать бота «по последним пискам».

С какими сложностями столкнулся ⛔

  1. Тяжелое тестирование всего функционала
  2. Когда подключал платежную систему, модераторы не могли зайти на мой веб сайт долгое время (писалось «не удается подключиться»). Я из Украины, и все друзья из Украины могли достучаться, из РФ — никто. Угадали почему? Бинго! Привет, Роскомнадзор! :)
  3. Звонки от Санты. Много времени ушло на то, чтобы построить диалог, найти самого персонажа, кто будет озвучивать Санту, продумать фразы для озвучки, сделать чтобы Санта понимал «да», «нет», писал в БД список желаний, который услышал..

Потраченные инвестиции 💸

1) 25$ работа диктора «Санты»

2) до 30$ в месяц VPS + пару долларов за домен

3) 25$ потрачено на тестирование звонков от «Санты» и улучшение его сценария :)

Участники проекта

Разработкой занимался я. Ко многим обращался помочь потестировать периодами.

Методы продвижения

Так как у меня скопилась фанатская база с прошлого года, я просто сделаю по ним рассылку, что Санта «готов делать Новый Год ярче», а далее надежда на сарафанное радио. Также будет реклама в одном паблике в Телеграме связанным с IT

Монетизация

Бот может приносить прибыль со «звонков от Санты», а также, пока что, есть платная функция начала «Новой игры в комнате». Первая игра всем бесплатная, а дальше нужно купить одну платную комнату, в которую все смогут присоединиться.

Планы

Я надеюсь, что этот бот будет продолжать радовать еще много людей в новогодние праздники, и к каждому году буду планировать добавлять по «киллер фиче» которые рождаются во время передвижения в такси :)

Да, бот пока что сырой, но играть можно :). Буду периодами фиксить баги. Самому, или в маленькой компании было все баги найти достаточно тяжело.

Я надеюсь, что в этом году я смогу опять сделать Новый Год ярче для еще бОльшего количества пользователей 🎅

Материал опубликован пользователем.
Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Igor Volokitin", "author_type": "self", "tags": [], "comments": 8, "likes": 10, "favorites": 19, "is_advertisement": false, "subsite_label": "tribuna", "id": 91907, "is_wide": false, "is_ugc": true, "date": "Sun, 10 Nov 2019 20:09:21 +0300", "is_special": false }
0
{ "id": 91907, "author_id": 92252, "diff_limit": 1000, "urls": {"diff":"\/comments\/91907\/get","add":"\/comments\/91907\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/91907"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199116, "last_count_and_date": null }
8 комментариев
Популярные
По порядку
Написать комментарий...
–2

Это open source? Дайте ссылку на гит..

Ответить
0

нет, не опен сорс

Ответить
–2

Если не опен сорс -политику конфиденциальности в студию для ознакомления.. та хотя в топку-сбор телефонов с целью продажи/спама.
Пожалуй, откажусь

Ответить
0

Политика конфиденциальности выдается перед началом игры (когда человек пишет /start).
  с целью продажи/спама

Тяжело жить наверно с постоянными мыслями, что ваши данные будут переданы кому-либо :( 
 Пожалуй, откажусь

Жаль

Ответить
0

Ссылки нет

Ответить
0

она в статье встречается дважды :)
https://t.me/HappySecretSantaBot

Ответить
0

2 раза пользовалась ботом. Первый раз в предыдущем году, второй раз - в этом. Оба раза неудачно. В прошлом подарок никто не выслал (но это ладно, тут нет гарантий), а в этом пришел фейковый профиль человека, которому я должна подарок выслать. Сделайте какую-нибудь проверку на вменяемость адреса или возможность, переизбрать пользователя.

Ответить

Комментарий удален

{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "Article Branding", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cfovx", "p2": "glug" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Баннер в ленте на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "disable": true, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } }, { "id": 20, "label": "Кнопка в сайдбаре", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "cgxmr", "p2": "gnwc" } } } ] { "page_type": "default" }