Это самый полезный в мире бот Telegram. Вот что он умеет
Создание канала с автопостингом в Телеграме без единой строчки кода
- API ,
- Системы обмена сообщениями
- Tutorial
Вступление
Предупреждаю сразу: технического в статье очень мало. Это практически пошаговая инструкция для не очень сведующих в техническом плане пользователей . Для людей сведущих (и тех, кому лень читать много текста), приведу две ссылки: Telegram Bots API + IFTTT Maker Channel .Теперь подробнее. Думаю, все слышали про мессенджер Telegram . Вероятно, многие даже знают про нехитрый API для создания ботов в этом мессенджере. Кроме того, не так давно в T появилась возможность создавать так называемые «каналы» (channels), упрощающие мгновенную рассылку сообщений практически любому количеству подписавшихся на канал лиц. Наконец, самая свежая новость: ботов стало можно добавлять в качестве администраторов в каналы , то есть такие рассылки стало можно делать автоматизированно.
Думаю, не надо объяснять, что это открывает довольно широкие возможности для различных сервисов. Например, у меня довольно быстро получилось сделать следующее:
- три канала (@RedditTop , @r_pics , @gone_wild - осторожно, последний с «взрослым» контентом), которые ежечасно импортируют топовые посты с Реддита (и двух его сабреддитов);
- ещё канал , делающий то же с постами с 9GAG;
- и, наконец, завел хитрого бота @JamesBot , который анонимно пересылает все сообщения, написанные ему, в общий канал (@secret_ru , @secret_en , @secret_es , @secret_ar или @secret_fa - в зависимости от языка). Получился анонимный чат средней степени трэшовости.
- публиковать сообщение в канале,
- отправлять сообщение в заранее выбранный чат (куда добавлен наш бот),
- отправлять сообщение заранее указанному пользователю (который добавил себе бота).
Шаг 1. Создаем бота.
По вопросу создания бота нужно обратиться к самому главному боту: @BotFather . У вас спросят две вещи: имя, которое будет отображаться в списке диалогов, а также юзернейм , по которому вашего бота можно будет найти (он должен быть уникален). Если цель - публикация постов в канале, ни то, ни другое, особого значения не имеют (видеть своего бота-администратора будете только вы).После получения ответов на эти два вопроса BotFather должен выдать вам token
вашего бота. Он имеет следующий вид:
123456789:Blablabla...
Сообщение с токеном терять не стоит, а сам токен - не стоит разглашать кому-либо, так как токен позволяет кому угодно представляться вашим ботом.
Шаг 2. Создаем канал.
Создание канала - шаг опциональный. Если хотите, можете отправлять сообщения в чат или пользователю (правда, придется сначала узнать их id - об этом ниже).В своем клиенте Телеграма выбираем создание нового сообщения - New Channel (кажется, все официальные клиенты сейчас поддерживают это). Указываем название, описание и фото по вкусу. Канал должен быть публичным, поэтому указываем тип Public и задаем адрес («юзернейм») теперь уже для канала. Этап приглашения друзей можно пропустить.
Когда канал создан, заходим в его настройки, открываем список администраторов и добавляем созданного на первом шаге бота (поиском по его юзернейму).
Шаг 3. Настраиваем интеграцию на IFTTT.
Отправляемся на IFTTT . Регистрируемся, если еще не. IFTTT позволяет создать множество триггеров вида «импортировать откуда», «при каком условии», «экспортировать куда». Они называются «рецептами». Создаем новый рецепт: Create a recipe .Сначала нужно выбрать источник и конкретное условие (триггер), по которому должен срабатывать рецепт. Тут вы ничем не ограничены: хотите - следите за твитами по хэштегу, хотите - переносите свои посты из фэйсбука. Не буду вдаваться в детали, всё довольно просто.
Последняя часть рецепта - «that» - выбрать, что нужно делать, если сработало условие. Тут нужно ввести в поиск Maker , выбрать его, а затем единственное доступное действие - Make a web request . Наконец - самый ответственный этап, заполнение полей:
- URL:
api.telegram.org/bot
- Method: POST
- Content type: application/json
- Body:
{"chat_id":"@
Обратите внимание: вместо
Уточнение: если вы хотите отправлять сообщение не в канал, а в чат или конкретному человеку (себе, например), то вместо "@
Примечание: в начале 2017 года ВК начал требовать токен пользователя для вызова метода wall.get и многих других. Процесс получения токена для ВК не относится к теме учебника, следовательно, описан не будет. По ссылке https://vk.com/dev/manuals любой желающий сможет найти документацию и описание процесса получения токена.
Для начала — небольшое лирическое отступление.
Когда в Telegram появились каналы , поначалу я к ним относился как к неудачной попытке клонировать Twitter. Сразу появились тупые канальчики с тупыми картиночками, что только усугубляло положение дел. Однако сейчас, спустя больше месяца, моё мнение изменилось на диаметрально противоположное. Призванные заменить списки рассылки (ими вообще кто-то пользовался?), каналы дали возможность получать огромное количество контента, которым можно делиться, который можно сохранять.
В Bot FAQ есть интересная фраза: "Мы будем внимательно смотреть на то, как люди пользуются ботами и развивать их в том направлении". С учетом того, что многие боты занимались именно рассылкой информации, каналы - это очень логичный и правильный шаг в развитии автоматизированных средств.
С точки зрения программиста, каналы решают сразу несколько ключевых проблем:
- Не надо зависеть от серверов Telegram, т.к. нет входящих сообщений.
- Анонимная рассылка сообщений (некоторые люди просили сделать возможность отправлять свои сообщения через "безликого" бота) максимально упростилась.
- Не надо вести списки пользователей, которым нужно отправить информацию и внедрять паузы между отправкой сообщения по очереди всем, эту заботу берёт на себя сам Telegram.
Лично я заметил, что некоторые паблики и группы ВКонтакте стали дублировать свои записи в каналы Telegram. Сегодня мы научимся делать то же самое без помощи каких-либо конструкторов или сторонних веб-сайтов. Чтобы не сильно заморачиваться, будем постить только ссылку на пост, превью к ней и так даст необходимый минимум информации о посте.
Получаем записи
В качестве "подопытного кролика" я выбрал свою маленькую, но очень гордую группу с музыкой C:\Music . Получать новые записи будем при помощи VK API, при этом нам не нужно заморачиваться с созданием приложений, т.к. получить записи со стены можно даже без авторизации ВКонтакте (если в настройках сообщества не указано обратно)
Итак, сформируем ссылку, которая будет нам возвращать последние 10 записей от имени сообщества из группы C:\Music: https://api.vk.com/method/wall.get?domain=c.music&count=10&filter=owner&access_token=token
Что здесь что? domain - короткое имя сообщества. Если его нет, то меняем domain=xxx на owner_id=-yyy (обратите внимание на минус перед числом, это важно). count - число выводимых записей. Чем дольше пауза между проверками и чем чаще в сообществе появляются записи, тем большее число нужно выставить, но не более 100. filter=owner просит сервер выводить записи только от имени группы, полезно, если стена открыта, access_token - это токен пользователя, который «дёргает» API от имени одного из приложений.
Давайте теперь создадим файл bot.py , в котором зададим основные константы и импорты:
Во-первых, не забудьте сделать нужного бота администратором канала, иначе фокус не удастся. Во-вторых, обратите внимание, что в импортах появилась библиотека eventlet , она поможет нам избежать проблем при получении записей из ВК. В-третьих, в указанный txt-файл будем записывать номер верхнего поста на момент проверки, я решил не заморачиваться с созданием key-value хранилищ, ради одного числа-то. В-четвёртых, в качестве параметра BASE_POST_URL указываем ссылку на любой пост из нашей группы без последнего числа.
Иногда ВК начинает дурить и не возвращает список постов за приемлемое время. В этом случае, нам нужно отвалиться по таймауту и пропустить проверку. Можно, конечно, попробовать ещё раз, но мы люди не настойчивые:)
def get_data () : timeout = eventlet.Timeout(10 ) try : feed = requests.get(URL_VK) return feed.json() except eventlet.timeout.Timeout: logging.warning("Got Timeout while retrieving VK JSON data. Cancelling..." ) return None finally : timeout.cancel()Суть простая: получилось - возвращаем объект с постами. Не получилось - возвращаем None. Теперь перейдем непосредственно к парсингу. Алгоритм будет такой:
- Открываем файл, хранящий последний известный номер верхнего поста.
- Если метод get_data() вернул объект с записями, начинаем проходить по нему со второго элемента, т.к. первый - какое-то неизвестное мне рандомное число.
- Если номер поста меньше или равен последнему известному - завершаем обход.
- Проверяем наличие закрепленного поста. Если таковой есть, то передаем функции отправки сообщений все записи, кроме закрепленной. Иначе - просто передаем все.
- У каждой проверяемой записи забираем ID, подставляем рядом с BASE_POST_URL и получаем полный ID записи.
- Отправляем его в канал.
- Как только обход завершился, берем номер первой (второй, если первая - закрепленная) записи и записываем в файл поверх старого значения.
- Засыпаем или завершаемся.
По поводу п.8: дополнительно предусмотрим в нашей программе два режима: в первом режиме скрипт постоянно работает, засыпая после каждой итерации на 4 минуты; во втором режиме скрипт просто завершает работу, что позволяет ставить его в планировщик cron . В определении режима нам поможет константная переменная SINGLE_RUN, которую надо не забыть указать где-нибудь вверху.
def send_new_posts (items, last_id) : for item in items: if item["id" ] <= last_id: break link = "{!s}{!s}" .format(BASE_POST_URL, item["id" ]) bot.send_message(CHANNEL_NAME, link) # Спим секунду, чтобы избежать разного рода ошибок и ограничений (на всякий случай!) time.sleep(1 ) return def check_new_posts_vk () : # Пишем текущее время начала logging.info(" Started scanning for new posts" ) with open(FILENAME_VK, "rt" ) as file: last_id = int(file.read()) if last_id is None : logging.error("Could not read from storage. Skipped iteration." ) return logging.info("Last ID (VK) = {!s}" .format(last_id)) try : feed = get_data() # Если ранее случился таймаут, пропускаем итерацию. Если всё нормально - парсим посты. if feed is not None : entries = feed["response" ] try : # Если пост был закреплен, пропускаем его tmp = entries["is_pinned" ] # И запускаем отправку сообщений send_new_posts(entries, last_id) except KeyError: send_new_posts(entries, last_id) # Записываем новый last_id в файл. with open(FILENAME_VK, "wt" ) as file: try : tmp = entries["is_pinned" ] # Если первый пост - закрепленный, то сохраняем ID второго file.write(str(entries["id" ])) logging.info("New last_id (VK) is {!s}" .format((entries["id" ]))) except KeyError: file.write(str(entries["id" ])) logging.info("New last_id (VK) is {!s}" .format((entries["id" ]))) except Exception as ex: logging.error("Exception of type {!s} in check_new_post(): {!s}" .format(type(ex).__name__, str(ex))) pass logging.info(" Finished scanning" ) returnОсталось дело за малым - написать логику запуска всего процесса и инициализировать логгер, который будет писать в текстовый файлик обо всех событиях в жизни бота:
if __name__ == "__main__" : # Избавляемся от спама в логах от библиотеки requests logging.getLogger("requests" ).setLevel(logging.CRITICAL) # Настраиваем наш логгер logging.basicConfig(format="[%(asctime)s] %(filename)s:%(lineno)d %(levelname)s - %(message)s" , level=logging.INFO, filename="bot_log.log" , datefmt="%d.%m.%Y %H:%M:%S" ) if not SINGLE_RUN: while True : check_new_posts_vk() # Пауза в 4 минуты перед повторной проверкой logging.info(" Script went to sleep." ) time.sleep(60 * 4 ) else : check_new_posts_vk() logging.info(" Script exited.\n" )Перед запуском бота, создадим вручную файл last_known_id.txt и впишем в него один из последних числовых ID, в моём случае это было чудесное число 1893. После включения бота, в зависимости от значения SINGLE_RUN, он будет либо постоянно работать, проверяя каждые 4 минуты на наличие новых постов, либо завершится после окончания первой проверки. Для себя я выбрал второй вариант, добавив скрипт в cron.
На сегодня всё, теперь вы можете легко и просто настроить автопостинг записей практически из любой группы ВК в свой канал.
Развился с 1 000 подписчиков до 8 000. С тех пор я понял, какие ошибки я допустил на первых этапах продвижения своего канала и как их избежать новичкам. Многие из начинающих авторов в Telegram спрашивают, что я могу посоветовать. Поэтому я решил обновить свою старую статью и сделать советы более актуальными и правильными.
Это обновление статьи от октября 2016 года
Что публиковать?
В Telegram, как и в любой другой социальной сети, в первую очередь, важно то, о чём вы пишите. Стоит учесть один важный момент. Здесь люди не хотят читать репосты, копипасты и другие виды контента, который есть у всех. Подписчики выбирают каналы, где есть авторское мнение, уникальный взгляд на популярную новость или нишевые тематики. Впрочем, тематика может быть популярной, но писать всё-таки стоит о своём.
Длинные посты лучше не публиковать. Даже в обычных социалках редко кто читает дальше заголовка. Лично я стремлюсь писать в «Twitter» формате. Короткий пост с картинкой и ссылкой с указанием источника. Лента моего канала похожа на каталог полезных сервисов и программ. Поэтому я создал список тегов, по которым подписчики легко смогут найти нужную программу. Выглядит это так:
Когда лучше всего публиковать в Telegram
Выбрать правильное время публикации для поста - основная из задач в любой социальной сети. Мне кажется, что для Телеграм это не имеет значения и на это есть несколько причин:
- У ваших подписчиков разный часовой пояс. Хотите опубликовать пост в три часа ночи? Пожалуйста.
- У некоторых подписчиков для вашего канала отключен звук оповещений.
- У подписчиков и так целая тьма каналов.
Из этих трёх пунктов можно сделать один простой вывод. Telegram - это как RSS-лента. Ваш пост прочтут тогда, когда это будет удобно подписчику. Поэтому не стоит публиковать слишком много информации за день. «Простыню» из 10500 постов никто не будет читать. Чего я лично не делаю. И на данный момент думаю над решением проблемы - чтобы лента обновлялась часто, но подписчики не страдали от количества постов.
Большинство русскоязычных пользователей Телеграм - это Москва и Питер. Поэтому если вы хотите выбрать наиболее оптимальное время, то выбирайте московское.
Есть ещё одна хитрость. Посты можно отправлять без оповещения пользователей. Для этого достаточно переключить иконку-«колокольчик» и сообщение отправится в канал без оповещений.
Отложенный постинг
Чтобы ещё меньше в течение дня думать о наполнении контентом канала, воспользуйтесь инструментами для планирования постов. Например, KUKU .
Благодаря планированию постов вы можете заранее определить публикации для своей ленты и в течение дня заниматься любимыми делами.
Как форматировать посты
Сам мессенджер не поддерживает никакого форматирования. Ссылки выглядят как http://ссылки , жирный текст как жирный, и прочее. Здесь на помощь приходят такие боты, как @markdownrobot. При помощи этого бота можно форматировать ваши посты в Markdown разметке.
При хорошем умении обращаться с ботами можно создавать посты с практически любым оформлением. Например, в канале-агрегаторе различных товаров с Aliexpress @aliexpressall к постам добавляют кнопки:
Здесь важно помнить, что не все Telegram клиенты поддерживают подобную разметку. Поэтому некоторые подписчики могут вообще не увидеть сообщения. Кроме этого, к постам можно добавлять голосовалки, лайки, опросы и многое другое.
Как вести статистику канала
Для ведения статистики канала опять же был изобретён полезный бот @ControllerBot . После подключения к вашему каналу вы сможете у него запросить статистику за последний месяц. Бот в ответ вам предоставит текстовые данные и красивый график роста.
Взаимный пиар
Как я писал в самом начале, в Телеграме сложно выйти на свою аудиторию. Поэтому одним из инструментов для нахождения двух «одиноких сердец» будет взаимный пиар. Найдите схожие по тематике каналы, желательно с таким же количеством читателей, как и у вас. После чего смело пишите админам с предложением о взаимном пиаре. Многие с радостью соглашаются.
Как же выглядит такой пиар? Вы в своём канале публикуете пост с рекламой чужого канала. Админ в ответ опубликует вашу рекламу. Стоит помнить, что нельзя переусердствовать с такими постами. Иначе все существующие читатели убегут от спама. Я публикую один рекламный пост в день.
Основные моменты, которые нужно знать:
- ВП - взаимный пиар;
- «Мега» - очень похоже на ВП. В этом случае все каналы, желающие поучаствовать, собираются в общий список, и реклама идёт одновременно во всех;
- Час или другое время в топе - после публикации рекламного поста должен пройти как минимум час перед следующей публикацией;
- 24 часа в ленте - рекламный пост не удаляется из ленты в течение суток. Да, рекламный пост можно будет удалить.
- Просмотры. Некоторые админы оставляют пост до тех пор, пока он не наберёт нужное количество просмотров.
Заранее подготовьте краткое описание канала, картинку и приватную ссылку. При переходе по такой ссылке посетитель автоматически становится подписчиком. Получить ссылку можно в настройках канала > выставьте тип канала на «Private». После чего вы получите приватную ссылку. Не забудьте поменять обратно статус канала на «публичный».
Важно сразу начать отслеживать конверсию от ВП и рекламы для своего канала. Делать это будет сложно из-за недостатка инструментов для сбора и анализа статистики. Но сделать это нужно, и чем раньше, тем лучше. Так вы сразу будете знать, с какими каналами нужно сотрудничать в будущем.
Я для этого использую таблицу в Google Документах:
Каталоги каналов
Каталоги каналов - ещё один отличный способ заявить о себе. Он частично похож на взаимный пиар. Потому что вас, скорее всего, попросят опубликовать рекламу каталога у себя. Кто-то опубликует ваш канал за деньги, а кто-то «за спасибо». В любом случае попасть в каталог гораздо проще, чем договориться о взаимном пиаре. Каталогов в Телеграме тьма-тьмущая и найти их не составляет труда.
Вот, например, список полезных каталогов от @tginfo , с которых стоит начать свой поиск:
- @CatalogTelegram - структуризированный каталог чатов, каналов и ботов.
- tgchans.com - каталог каналов с расширенной статистикой и отслеживанием репостов.
- inten.to - индексация чатов, каналов и ботов в режиме реального времени.
- tlgrm.ru/channels - сайт с каналами, отсортированными по рубрикам.
- tchannels.me - старейший каталог каналов.
- telegram-club.ru - чаты, каналы и боты.
- tlgrm.pro - чаты, каналы и боты.
- storegram.ru - боты и каналы с рейтингом.
- tgcreator.ru - рейтинг каналов и ботов.
- uztelegram.com - каналы Узбекистана.
Если вы хотите раскрутить своего бота, то вам понадобятся каталоги ботов:
- @Obzorchik - боты каждый день, а также сайты с ботами;
Конечно, не забыли про каталоги групп. Например, @groupsguide и combot.org/telegram/top/chats , где собраны самые популярные группы по статистике @comstatbot .
Конечно, если не хочется и нет времени вникать самому, то можно заказать услугу продвижения телеграм на этом сайте , где за небольшой процент сделают всё за вас.
Кроме каталогов, есть и авторские каналы, направленные на публикацию всего, что связано с Телеграмом. При помощи таких каналов тоже можно «достучаться» до своей аудитории. Например, в канале Твой Telegram публикуются новости о мессенджере и советы по его использованию. Поэтому реклама в таком канале будет интересна его подписчикам. Они изначально пришли сюда за поиском интересных каналов и новостей о Telegram.
Главное, учитывайте аудиторию каналов, с которыми планируете сотрудничество.
Покупка подписчиков
Самый затратный, но и самый простой вариант привлечения читателей - это «загнать» их за деньги. В Telegram есть люди, которые с радостью привлекут живых подписчиков к вам в канал за деньги. Обычно это несколько рублей за «голову».
Заказать такой тип продвижения можно у некоторых администраторов каталогов. Начать стоит с @User_Administration , который поможет разнести весть о вас более чем в 30-ти каналах Telegram. При этом радиус охвата будет иметь разностороннюю направленность и затронет большую часть аудитории.
Расскажите о себе в других социальных сетях
Основное место локации моих постов - это мой блог. Потом идут социальные сети и почтовая рассылка. У вас наверняка так же. Поэтому не пренебрегайте вашими читателями в Twitter или на сайте. Расскажите о своём канале у себя в социальных группах и люди к вам потянуться.
Напоследок
Я рассказал лишь об основных хитростях продвижения канала в Telegram. Благодаря им я без труда могу удержать существующую аудиторию своего канала и привлекать новых подписчиков.
Не стоит останавливаться лишь на этих советах. Всегда ищите новые техники привлечения подписчиков. Чтобы оставаться «в теме» маркетинга в Телеграм, да и в других сетях, я подписался на несколько каналов.
Автопостинг в Телеграмм – отличный инструмент, если пользователь продвигает один бренд (или бизнес) одновременно на нескольких ресурсах. В этом случае он сталкивается с необходимостью дублировать посты, а при насыщенном плане публикаций это занимает немалое время.
Автопостинг из ВКонтакте в Телеграмм
Одно из самых востребованных направлений автопостинга. Однако есть сложность - социальная сеть ВКонтакте изменяется, периодически вносятся правки в код, а недавнее ограничение на прослушивание музыки наделало много шума и усложнило задачу разработчикам.
Сегодня работает немало ботов типа «бот – Telegram - ВК», но большая часть из них предназначена для скачивания музыки или других медиа из ВК, некоторые работают некорректно. Так как большая часть ботов создается на добровольных началах, то найти функционального и полностью работоспособного непросто.
Можно прибегнуть к Posterbot (@pstrbot
); при бесплатном использовании (в отличие от Premium) бот имеет ограничения:
- Можно подключать до 20 источников (для Premium – до 40);
- В качестве источников можно использовать сообщества с числом подписчиков до 5000 (в Premium ограничений нет);
- Автопостинг музыки из ВКонтакте и большинство ручных настроек доступны только для Premium.
Немаловажный момент: из-за большой нагрузки на сервера автопостинг может задерживаться, иногда до 14 часов. Но обладателей Premium эта проблема касается в меньшей степени – если нет никаких форс-мажоров, посты в Телеграмм появляются без задержки.
Настройка автопостинга с помощью Posterbot проходит в несколько этапов:
1 этап: добавление Posterbot в сообщество с предоставлением прав администратора:
2 этап: добавление сообщества в Posterbot:
3 этап: подключение источника ВКонтакте:
Автопостинг из Facebook и Instagram в Телеграмм
Настраивается так же, как и для ВКонтакте. Первые два этапа – добавление бота в список администраторов и добавление канала. Если Posterbot уже подключен и настроен, то можно сразу приступить к добавлению источника.
Для Instagram
Для Facebook
Автопостинг в Youtube из Телеграмм
Автоматический репостинг поддерживается и для Youtube, для этого потребуется сделать Posterbot администратором сообщества Телеграмм, а затем добавить канал в беседе с ботом – эти два этапа подробно описаны выше.
Чтобы добавить в список источников канал Youtube, надо:
Репост из Телеграмм в другие соцсети
Надо признать, что неопытные пользователи Телеграмм поначалу опасаются работать с ботами. Но даже роботизированные аккаунты пугают их меньше, чем настройка платформ кросспостинга – именно с их помощью чаще всего организуют одновременную публикацию в соцсети и мессенджеры.
Но Телеграмм не стоит на месте, теперь с помощью бота Репостинг в соцсети (@SocialRepostBot
) можно отправлять посты из Телеграмм в VK и Facebook.
Для того чтобы организовать репост из Телеграм в Фейсбук, потребуется:
При некотором терпении и внимании не составит труда настроить автопостинг и репостинг между несколькими соцсетями и мессенджерами.
В стоимость 1 кворка входит:
Обратите внимание!
Напишу и настрою скрипт для автоматического репоста сообщений из сообщества ВКонтакте в канал в Телеграме.
Скрипт автопостинга будет работать через Телеграм API чат-ботов.
Скрипт будет регулярно проверять записи на стене сообщества, и при появлении новых постов - отправлять уведомление в Telegram.
Примеры смотрите в прикрепленных скриншотах.
В стоимость 1 кворка входит:
Настройка автоматической отправки ссылок на посты из одного сообщества ВКонтакте.
Для того чтобы отправлять само сообщение (текст, фото) - заказывайте дополнительную опцию.
Если в течение 7 дней после настройки будут обнаружены какие-то ошибки, то я исправлю их.
Обратите внимание!
В связи с техническими ограничениями ВКонтакте и Телеграмма, не будут репоститься:
Сообщения с файлами большого объема
Для работы скрипта потребуется хостинг с PHP 5.6+. Сервер должен находится не в России (в связи с блокировкой Telegram) или придется использовать прокси (делаю через публичный прокси, но в какой-то момент отправка может перестать работать и нужно будет самостоятельно поменять прокси на другой).
Если у Вас нет хостинга, могу разместить на своем (см. доп опции).
ФайлыСервисный ключ доступа (access token) ВКонтакте (если не знаете, то расскажу как получить)
Логин Telegram бота и token (если не знаете, то расскажу как получить)