Бот для ВК для пересылки сообщений в Телеграмме

Тут мы рассказываем, как отправлять личные сообщения в Telegram с помощью бота.

Если вы хотите отправлять сообщения не в личные сообщения, а в группу в Telegram, то обратитесь к этой инструкции.

Как настроить отправку сообщений

Постройте сценарий

Чтобы отправить что-либо в Telegram, сначала нам нужно записать информацию в переменную. Вы можете собрать несколько параметров, записать их в переменные, и все эти переменные передать в Telegram. Перед отправкой данных у вас должен существовать участок сценария с записью в переменные.

Пройдите этот урок для построения сценария.

После прохождения урока, у вас будут 5 переменных:

  • для имени
  • для фамилии
  • для телефона
  • для email
  • для вида услуги

Опубликуйте бота в Telegram

Чтобы опубликовать бота в Telegram, следуйте инструкции.

Если вы уже опубликовали бота в Telegram, переходите к следующему пункту.

Получите chat_id

Для того чтобы получить сообщение в Telegram, бот должен знать, кому его отправлять. Вы можете получить chat_id своего аккаунта (или аккаунта человека, которому вы хотите отправлять данную информацию), чтобы затем с помощью бота отправлять сообщения.

Телеграмм бот, пересылка медиа из разных чатов в один

Чтобы получить chat_id , создайте в сценарии новый экран с текстом:

Поместите этот экран в начало сценария, чтобы этот экран был в левом верхнем углу. Таким образом, этот экран будет первым при запуске бота.

Опубликуйте бота

Нажмите Опубликовать и дождитесь сообщения о том, что сценарий опубликован на канале Telegram.

Протестируйте бота

Теперь перейдите к своему боту в Telegram (не в тестовом виджете!) и отправьте боту:

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

Бот пришлет вам нужное значение:

Скопируйте и вставьте в блокнот число, которое прислал бот.

Удалите экран с текстом $rawRequest.message.from.id . Он больше не нужен.

Отправьте данные

Следующий шаг — отправить данные, полученные от клиента. Для этого в сценарии, после сбора всей нужной информации, должен быть блок HTTP-запрос. С помощью одного запроса можно передать сразу несколько переменных:

Блок должен быть оформлен следующим образом:

Метод GET

Формирование URL

Для создания URL скопируйте в блокнот строку: https://api.telegram.org/bot/sendMessage

Затем перейдите в Telegram в канал BotFather и скопируйте токен вашего бота, который был сгенерирован, когда вы публиковали канал:

В блокноте выделите

И вместо вставьте токен из Telegram:

Получится примерно следующий адрес:

Теперь выделите строку целиком и вставьте ее в поле URL HTTP-запроса в Aimylogic

Оформление поля BODY

В BODY нам нужно указать:

  • значение chat_id , которое мы получили ранее

  • все переменные, которые мы до этого собрали в сценарии.

Если вы повторили урок по сбору контактных данных, то в сценарии вы получили следующую информацию:

Ваше имя: $name Ваша фамилия: $lastname Ваш телефон: $PHONE Ваш email: $EMAIL Вид услуги: $service

Поэтому сейчас мы используем именно эти переменные.

Итак, нужно вставить значение chat_id и перечислить переменные, которые были в сценарии до отправки.

Обратите внимание на отступы и знаки препинания! Рекомендуем не набирать текст, а скопировать и вставить.

Нажмите Сохранить.

Готово, мы оформили Http-запрос для отправки данных.

Проверьте статус отправки

От логики «Завершен успешно» добавляем связь к новому экрану, содержащему сообщение об успешной отправке данных. Например, “Спасибо, ваши данные успешно отправлены!”

От логики “Завершен с ошибкой” делаем связь с экраном, содержащим текстовый блок “Ошибка $httpStatus ”. Данный блок поможет нам понять, в чем неполадка, если http-запрос не будет успешным.

Протестируйте сценарий

Нажмите Тестировать и поговорите с ботом.

Еще по теме:  Телеграм высылает код на другое устройство что делать

По итогу диалога нужная информация должна прийти в Telegram.

Обратите внимание, что бот будет присылать сообщение в вашу беседу с ботом. Если вы ожидаете, что вам придет личное сообщение от какого-то другого аккаунта, вас может смутить такое поведение. Но в дальнейшем, когда другие люди будут писать боту, и вы будете получать сообщения от бота, вам будет более понятно, что происходит. Попросите другого человека прислать боту свое имя и телефон, и тогда вы получите сообщение от бота.

Возможные неполадки

Вы нажимаете Тестировать, и бот выдает ошибку

Проверьте, не используете ли вы в сценарии $rawRequest для получения имени. Если да, то тестировать нужно в канале Telegram. В тестовом виджете ошибка будет ожидаемо выпадать, так как бот пытается получить информацию из канала, которого нет.

«Ошибка -1»

Проверьте правильность URL в http-запросе. Возможно, в самом URL или в конце URL есть пробел либо по ошибке вставлен неверный символ.

«Ошибка 400»

  1. Проверьте правильность оформления http-запроса. Попробуйте удалить Telegram-бота в BotFather, создать заново и использовать заново сгенерированный токен.
  2. Проверьте правильность оформления поля BODY (синтаксис).

Образец правильного оформления поля BODY

  • Первая и последняя строчка должны содержать только фигурные скобки
  • Должны быть отступы (можете нажать Tab либо нажать пробел четыре раза)
  • «chat_id»: должно быть написано именно так (проверьте на наличие опечаток, а лучше скопируйте и вставьте): «chat_id»:
  • Значение chat_id должно быть не 123456789, а реальное значение, которое вы скопировали на шаге 3 (123456789 это пример для урока)
  • Строка, содержащая «chat_id»: должна оканчиваться запятой
  • После двоеточий должны быть пробелы
  • Значение передаваемого текста сообщения должно быть в таких кавычках: » »

Источник: help.aimylogic.com

Как создать бота в Телеграмм

#ОкейГик

Мессенджер Телеграмм имеет большую функциональность, которая не заканчивается отправкой сообщений от пользователя к пользователю. Расширяют возможности приложения, в том числе, боты, которые могут автоматизировать те или иные функции. Боты могут быть как крайне простые, так и сложные и многофункциональные. В рамках данной статьи рассмотрим, как создать бота в Телеграмм.

Оглавление: 1. Что такое боты в Телеграмм 2. Как создать бота в Телеграмм 3. Как настроить автопостинг в Телеграмм из ВКонтакте, с сайта и других сервисов

Что такое боты в Телеграмм

Бот для Телеграмм – это автоматизированная программа, внедренная непосредственно в канал, группу или чат мессенджера. Бот может выполнять самые разные функции, например:

  • Рассылать анонсы статей с сайта после их публикации;
  • Собирать заказы;
  • Предоставлять информацию, которая в нем заложена, например, отвечать на некоторые вопросы.

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

Как создать бота в Телеграмм

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

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

kak sozdat bota telegram

Когда необходимая информация будет направлена «отцу ботов», он выдаст API-токен. Скопируйте его и вернитесь в чат к manybot, после чего отправьте ему скопированный API;

kak sozdat bota telegram

Далее manybot проведет проверку по базе, определит соответствие и если API был введен верный, выдаст информацию, что токен для бота принят, после чего предложит рассказать о боте пару слов, то есть ввести его описание. Можно это сделать и направить боту, либо проигнорировать, использовав команду /skip.

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

Как настроить автопостинг в Телеграмм из ВКонтакте, с сайта и других сервисов

Создав бота по описанной выше инструкции, можно настроить его на автоматическую публикацию информации, которая появилась на вашем (или чужом) сайте, в группе ВКонтакте, на Youtube-канале или странице в Twitter. Настраивается бот довольно просто, для этого достаточно:

kak sozdat bota telegram

  1. После создания бота по описанной выше инструкции, перейти в чат с ним и нажать Start, чтобы начать работать. После этого бот сообщит, что оформлена подписка, а поскольку вы являетесь владельцем данного бота, предложит его настроить;
  2. Чтобы настроить автоматический постинг информации с сайта, группы ВКонтакте или других ресурсов в бота, напишите команду /autoposting;
Еще по теме:  Как вернуть аккаунт в Телеграме есле его удалили

kak sozdat bota telegram

  • Снизу появятся кнопки, позволяющие выбрать, с какого сервиса вы планируете настроить автоматический постинг сообщений. Рассмотрим в рамках данной инструкции вариант с автопостингом с сайта, но, в целом, с другими ресурсами отличаться ситуация не будет. Нажмите +RSS лента;
  • Далее потребуется ввести ссылку на фид сайта, с которого будет вестись автоматический постинг в бота Телеграмм. Введите нужную страницу и отправьте ее боту;
  • Стоит отметить, что к одному боту можно подключить кросс-постинг информации из нескольких источников. Подобным образом можно удобно сформировать для себя RSS-ленту, куда будут сыпаться сообщения с интересных вам сайтов.

    Источник: okeygeek.ru

    Как создать бот Вконтакте и Telegram что бы они работали вместе

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

    1. Настройка сервера

    Первым делом нужно настроить сервер, на нашем сайте есть несколько статей на эту тему, но сейчас я расскажу еще раз в краце.

    Покупаем сервер если нет — Я рекомендую FirstVds нам подойдет самый дешевый тариф, на данный момент это тариф Прогрев за 199р Или вы можете подыскать сервер с похожей конфигурацией.

    Далее настраиваем сам сервер, для Telegram требуется SSL сертификат, иначе мы не сможем установить webhook (Обработчик), подробнее об этом есть в нашей статье [PHP] Создание простого Telegram-бота на простой библиотеке. Что бы все заработало вам понадобится домен. Купить его можно на REG.ru или любом другом агрегаторе доменных имен, стоимость домена на 1 год составляет от 100р в зависимости от выбранной вами зоны, ru, su, com, org и т. д.

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

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

    Туда мы и будем загружать все наши файлы

    2. Скачивание библиотек

    Для работы нам понадобится 2 библиотеки, бот будет максимально простым, но если статья будет вам интересна и вам захочется дальнейшее развитие темы с подключением базы данных и расширение функционала, то пишите об этом в комментариях!

    Библиотека для работы с ВК:

    Библиотека для работы с Telegram

    Скачиваем архивы и загружаем в ранее созданную папку bot на этом этапе мы закончили и приступаем к настройке наших будущих ботов

    3. Настройка бота в VK и Telegram

    Для начала настроим наш бот Вконтакте. Для этого выбираем будущее сообщество под нашего бота и переходим в раздел настройки — Работа с API и создаем токен:

    Копируем наш ключ доступа и сохраняем куда-нибудь, он нам пригодится в дальнейшем. Далее на этой же вкладки открываем Calback API и настраиваем

    Тут нам нужно указать путь до файла с ботом, его предварительно нужно создать в корне папки bot с названием bot.php и добавить туда следующий код:

    echo ‘320105f2’; — это строка которую нужно вернуть на запрос от вк,

    Строка, которую должен вернуть сервер: 320105f2

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

    Значит мы все сделали правильно и теперь настраиваем бот в Telegram

    Для этого нужно написать https://t.me/BotFather команду /newbot и следовать дальнейшим инструкциям, вот как это сделал я:

    Здесь мы копируем токен который указан после Use this token to access the HTTP API: на него достаточно просто нажать один раз и он скопируется

    Теперь в бразуере вставляем ссылку следующего вида (Заменив ВАШДОМЕН на свой) и заменить на свой

    https://api.telegram.org/bot/setWebhook?url=https://ВАШДОМЕН/bot/bot.php

    В бразуере должно отобразиться это:

    Значит мы все сделали правильно. Теперь начинаем писать код.

    4. Основной код бота

    Подключаем наши библиотеки в код,

    require_once ‘telelibonphp-master/tgLib.php’; //Подключаем библиотеку TG require_once «simplevk-master/autoload.php»; //Подключаем библиотеку VK

    Далее нам нужно сделать проверку откуда именно приходит событие и как нам его обрабатывать:

    Еще по теме:  Заедает датчик приближения в Телеграмме

    $data = json_decode(file_get_contents(‘php://input’),true); $group_id = $data[‘group_id’] ?? null; if ($group_id !== null) < $vk = vk_api::create(‘Ваш апи ключ из ВК’, ‘5.131’)->setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных > else

    Здесь мы проверяем с помощью GROUP_ID откуда приходит событие, так как в Telegram нет такого поля, то соответственно оно будет пустым

    Далее нам остается добавить несколько команд и классический ответ если ни одна из команд не будет указана:

    $command = explode(‘ ‘, mb_strtolower($message)); // Обработка команд if ($command[0] == ‘время’) < $date = date(‘d.m.y H:i:s’); $vk->sendMessage($peer_id, «Серверное время: $date»); exit; > if ($command[0] == ‘инфо’) < $vk->sendMessage($peer_id, «Я бот и я умею работать в ВК и Телеграмм»); exit; > // Класичиский ответ $vk->sendMessage($peer_id, «Приветик :)»);

    Итоговый код получается следующий:

    setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных > else < $vk = new tgBot(‘ВАШ ТОКЕН из telegram’); $message = $data[‘callback_query’][‘message’][‘text’] ?? $data[‘message’][‘text’] ?? null; $peer_id = $data[‘callback_query’][‘message’][‘chat’][‘id’] ?? $data[‘message’][‘chat’][‘id’] ?? null; $user_id = $data[‘callback_query’][‘message’][‘from’][‘id’] ?? $data[‘message’][‘from’][‘id’] ?? null; >$command = explode(‘ ‘, mb_strtolower($message)); // Обработка команд if ($command[0] == ‘время’) < $date = date(‘d.m.y H:i:s’); $vk->sendMessage($peer_id, «Серверное время: $date»); exit; > if ($command[0] == ‘инфо’) < $vk->sendMessage($peer_id, «Я бот и я умею работать в ВК и Телеграмм»); exit; > // Класичиский ответ $vk->sendMessage($peer_id, «Приветик :)»);

    Теперь давайте проверим наших ботов в деле (Слева Telegram, справа Вконтакте):

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

    if ($command[0] == ‘кнопка’) < if ($platform == ‘vk’)< // Если событие из вк // Кнопка ВК $started = $vk->buttonText(‘Нажми меня’, ‘green’, [‘command’ => ‘play’]); $kbd = [[$started]]; > else < // Иначе вставляем кнопку для телеги // Кнопка TG $kbd = [ ‘inline_keyboard’ =>[ [[‘text’ => ‘Нажми меня’, ‘callback_data’ => ‘play’]] ] ]; > $vk->sendButton($peer_id, «Держи кнопку, но знай, она отличается от выбраного месенджера», $kbd); exit; >

    У нас появились новые переменные, их так же нужно добавить в код выше, вот так:

    setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных $payload = $payload[‘command’]; $platform = ‘vk’; > else

    Весь код нашего бота:

    setConfirm(‘320105f2’); $vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных $payload = $payload[‘command’]; $platform = ‘vk’; > else < $vk = new tgBot(‘ВАШ ТОКЕН из telegram’); $message = $data[‘callback_query’][‘message’][‘text’] ?? $data[‘message’][‘text’] ?? null; $peer_id = $data[‘callback_query’][‘message’][‘chat’][‘id’] ?? $data[‘message’][‘chat’][‘id’] ?? null; $user_id = $data[‘callback_query’][‘message’][‘from’][‘id’] ?? $data[‘message’][‘from’][‘id’] ?? null; $payload = $data[‘callback_query’][‘data’]; $platform = ‘tg’; >$command = explode(‘ ‘, mb_strtolower($message)); // Обработка команд if ($command[0] == ‘время’) < $date = date(‘d.m.y H:i:s’); $vk->sendMessage($peer_id, «Серверное время: $date»); exit; > if ($command[0] == ‘инфо’) < $vk->sendMessage($peer_id, «Я бот и я умею работать в ВК и Телеграмм»); exit; > if ($command[0] == ‘кнопка’) < if ($platform == ‘vk’)< // Если событие из вк // Кнопка ВК $started = $vk->buttonText(‘Нажми меня’, ‘green’, [‘command’ => ‘play’]); $kbd = [[$started]]; > else < // Иначе вставляем кнопку для телеги // Кнопка TG $kbd = [ ‘inline_keyboard’ =>[ [[‘text’ => ‘Нажми меня’, ‘callback_data’ => ‘play’]] ] ]; > $vk->sendButton($peer_id, «Держи кнопку, но знай, она отличается от выбраного месенджера», $kbd); exit; > // Класичиский ответ $vk->sendMessage($peer_id, «Приветик :)»);

    И вот так это выглядит:

    Для обработки нажатия кнопок достаточно добавить следующее:

    if ($payload == ‘play’)< $vk->sendMessage($peer_id, «Ты нажал кнопку и я выполяю на это какое-то событие. «); exit; >

    Архив с исходником и всеми библиотеками:

    5. Заключение

    Подведем итоги. Можно сделать выводы что написать бот для ВК и одновременно для Телеграмм не такая сложная задача как может показаться на первый взгляд. Пробуйте и творите своих ботов, ведь это своего рода искусство, где каждый создает что-то интересное.

    Если углубляться в работу библиотек то вполне реально сделать их совмещеными, где даже не придется определять откуда приходит запрос, но для начального изучения я рекомендую использовать именно 2 разные библиотеки ведь в телеграме намного больше возможностей для создания ботов, в следующей статье я расскажу о некоторых прикольных фишках для ботов В Telegram.

    • Сергей Котов
    • 05.04.2023
    • 1 706
    • 0
    • 49

    Источник: kotoff.net

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...