Андрей Смирнов
Время чтения: ~8 мин.
Просмотров: 0

Telegram bot API

Отправка сообщений в Telegram из PHP с обычного аккаунта в обход ограничений Bot API

11 July 2018, 20:13 MSKИтак, снова пост про Телеграм. Я уже рассказывал, как отправлять сообщения от имени бота (в том числе, через прокси) и как сделать бота, который умеет принимать сообщения.Отправлять сообщения в Телеграм от бота очень просто, но есть крайне неудобная проблема: из-за ограничений Telegram Bot API бот не может писать первым. То есть, сначала пользователь, которому вы собрались что-нибудь отправить, должен первым написать вашему боту любое сообщение. Это ограничение вполне разумно и предотвращает спам сообщениями от ботов, но очень мешает честным людям. Например, отправлять сервисные сообщения с информацией о заказе в интернет-магазине.Решение этой проблемы только одно: не использовать ботов. Придётся всё делать с обычного аккаунта.Копаться в подробностях телеграмовского протокола MTProto не нужно, как оказалось, всё уже сделано до нас. Для PHP существует чудесная библиотека MadelineProto. Её мы и будем использовать, ниже пошаговая инструкция.1. Регистрируем аккаунт, с которого будет осуществляться отправка сообщений. Можно использовать существующий (но лучше сделать новый).2. Нужно зарегистрировать приложение. Просто формальная процедура. Для этого идём на сайт https://my.telegram.org/, логинимся через ваш аккаунт в Телеграме. Лучше всего, чтобы этот аккаунт не совпадал с акаунтом из пункта 1. Далее переходим на страницу https://my.telegram.org/apps, заполняем поля (платформа — Web, остальное не так важно), отправляем форму. Всё готово — приложение создано. Вас перенаправит на страницу настроек, запоминаем оттуда поля App api_id и App api_hash, остальное не нужно.3. Теперь нужно установить библиотеку MadelineProto. Делается это очень легко. Создаём на веб-сервере папку, в неё помещаем php-файл (например, index.php) со следующим содержимым:

 if (!file_exists('madeline.php')) {     copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php'); } include 'madeline.php'; $MP = new danogMadelineProtoAPI('session.madeline'); $MP->start();

Созданный скрипт должен иметь права на запись в папку. Библиотека требует PHP 7, но у меня всё завелось на PHP 5.6.4. Запускаем созданный php-файл из браузера. На первом шаге выбираем Manually, затем вставляем значения полей App api_id и App api_hash из пункта 2, ждём, выбираем User, указываем телефонный номер акаунта из пункта 1, получаем на него смс, вводим код, готово — вы залогинились в Телеграме из вашего веб-приложения.5. Переходим непосредственно к программированию. Весь код мы будем дописывать в имеющийся php-файл из пункта 3. У библиотеки MadelineProto есть хорошая документация, но некоторые моменты не очень понятны с первого раза.Для отправки сообщений нужно использовать метод sendMessage:

$MP->messages->sendMessage(['peer' => '', 'message' => '']);

Здесь peer — ID получателя, message — текст сообщения. И вот тут есть загвоздка: а где, собственно, взять айдишник пользователя, которому мы будем слать сообщения, если мы знаем только номер телефона?Для этого проще всего добавить телефон получателя во внутренний список контактов. Делается это так:

$contact = ['_' => 'inputPhoneContact', 'client_id' => 0, 'phone' => '+79xxxxxxxxx', 'first_name' => '', 'last_name' => '']; $import = $MP->contacts->importContacts(['contacts' => [$contact]]); // $import['imported'][0]['user_id'] - ID пользователя

Здесь мы указываем phone — номер телефона, first_name и last_name — имя и фамилия (можно указать любые, это не важно). В переменной $import[’imported’][0][’user_id’] будет содержаться ID нашего получателя. Хорошо бы его куда-нибудь сохранить у себя, чтобы можно было использовать дальше.После этого мы вызываем метод sendMessage и передаём ему полученный ID. Также в качестве peer можно передать никнейм (например, @name). Собственно, это всё!Использовать данный метод для рассылки спама бесполезно — аккаунт довольно быстро заблокируют по жалобам пользователей.

Что такое API

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

1.pngКонечно, всегда так продолжаться не могло, поэтому однажды было решено автоматизировать весь этот процесс, создав библиотеки со встроенным набором функций. То есть, для вывода «Привет» разработчик должен был просто написать «cout << “Привет”», а подключенный им файл сам переводил это в последовательность нулей и единиц.

Осознав, что это довольно удобно, разработчики ввели понятие «API» ― встроенного интерфейса, позволяющего посылать операционной системе, компьютеру или еще чему-то команды на понятном для него языке. API автоматизировали создание игр или написание офисных программ, делая, к примеру, наложение текстуры на объект более простым.

Примером API может служить всем известный 1С

Какой язык скриптов использует мессенджер

Если вы серьезно взялись за задачу написать робота, то первое, что вам приходит в голову ― это вопрос: «А на каком языке тут все работает? Есть ли какой-то встроенный язык вроде apibridge?».

На самом деле ответить на этот вопрос однозначно нельзя.

Для выполнения всех своих функций мессенджер применяет:

  • Язык, на котором и пишутся все команды для роботов.
  • HTML. Он применяется для создания всеми любимых и недавно появившихся игр.
  • JavaScript. Применяется для некоторых скриптов.

Подробнее об этом вы сможете узнать на официальном сайте.

Создание робота в телеграм

Можно организовывать командные тексты в соответствующей системе с использованием установщиком. Для поиска работы нужно ввести go telegram bot api. Для создания имеется сервисная система @Botfather. Если зайти туда, то можно увидеть много командного набора, благодаря которых можно создать новый робот. Для того чтобы построить нового робота в приложении, первоначально набирается команда с названием – newbot. Далее ввести имя для клиента, которое в обязательном порядке должно оканчиваться на «бот». После чего присылается индетифкаторный токен, в результате чего создается новейший установщик. Авторизировать его можно только через токен. Далее запускается программный режим в портале. Клиент находит своего установщика и нажимает на кнопку в виде старта, что далее запускает определенную командную строку. Далее будут зарезервированы соответствующие командные строки под наименованием settings и /help. Для обхода блокировки api, его, необходимо подключить к SOCKS5 прокси, подставить рабочий прокси в адрес и, если нужны, то данные, а также свой запросный вопрос. Кроме того, можно сделать зеркало api telegram org, простым способом сделав зеркало без фактического перехода клиента на него, без переадресации. Например, он переходит по ссылке, а сервисная программа будет пересылать запрос на другой сервис. Далее получить отклик от сервисного центра данных, что предпосылает клиенту, который сделал поначалу запрос.

Элементы управления

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

  1. sendMessage – для получения сообщения.
  2. sendVideo – для отправления видео.
  3. sendAudio – для отправления аудиозаписи.

Все элементы управления делятся на категорию групп для:

  • Получения обновления и информационных запусков.
  • Общения в чате.
  • Отправки разнообразных элементов.
  • Функции с наклейками.
  • Обновления текстовых сообщений.
  • Платежного функционала.
  • Игр и развлекательных порталов.

Важно! Полная документация приложения пока на нашем отечественном языке отсутствует. Однако можно надеяться на обычный перевод в браузере Google, который прекрасно справляется со своей поставленной задачей.

elementy-upravleniya.png

Для чего нужен телеграмм API

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

2-3.jpgНаш Компьютер выяснил, что он позволяет:

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

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

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

Найти этот API можно на официальном сайте телеграмма ― правда, он не на русском языке.

Языки программирования

Что же такое чат бот telegram api javascript? Онлайн сервис может поддерживаться различными языками для сервисных программных режимов, что позволяет сделать выбор любому человеку. Клиенты JavaScript, которые любят общаться в чате бота telegram api используют Node.js python telegram bot api.

Важно! Здесь необходимо знать не только язык, но и уметь обращаться с фреймворком, превращающий в стиль в интерфейс системы.

Один из известных для написания бота с использованием системы является PHP. Этот язык управления предназначается для того, чтобы создать серверные приложения. Язык простой, логичный и специализированный для web-портала. С поддержкой инструментов можно осуществлять всякие системы. Можно создать следующие командные режимы:

  • Telegram bot api php sdk.
  • Using telegram api.
  • Node js telegram bot api.
  • Core telegram org bots api.
  • Connection to api telegram org timed out , при этом важно изучить официальную документацию, а не сам наборный пакет.

Используемые источники:

  • https://kirkizh.ru/2018/07/telegram-php-list/
  • https://nashkomp.ru/telegramm-api
  • https://telegram-rus.ru/api

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации