Я видел, что новый API для ботов позволяет создавать настраиваемых ботов, я видел некоторые источники, такие как это и это. Я также читал о @fatherbot
, который касается регистрации ботов, я также искал несколько примеров о ботах телеграмм, таких как как этот, я знаю, как писать коды в php
и python
, но не могу понять, как вызывать API методы и с чего начать. Кто-нибудь знает, как начать?
Вызов Telegram API для создания бота для чтения каналов
Ответы (7)
Вы можете просто использовать мою новую библиотеку для API бота телеграммы! https://github.com/tekook/TelegramLibrary
Он включает в себя все функции нового API и представляет собой простую в использовании библиотеку, основанную на событиях!
Радоваться, веселиться!
Вы можете использовать этот базовый пример, чтобы начать работу. Я бы предложил добавить немного больше полировки, используя как curl и добавить некоторую обработку ошибок.
<?php
$bot_id = "<bot ID generated by BotFather>";
# Note: you want to change the offset based on the last update_id you received
$url = 'https://api.telegram.org/bot' . $bot_id . '/getUpdates?offset=0';
$result = file_get_contents($url);
$result = json_decode($result, true);
foreach ($result['result'] as $message) {
var_dump($message);
}
# You can send a message like this:
# The chat_id variable will be provided in the getUpdates result
# TODO: urlencode your message
$url = 'https://api.telegram.org/bot' . $bot_id . '/sendMessage?text=message&chat_id=0';
$result = file_get_contents($url);
$result = json_decode($result, true);
var_dump($result['result']);
Согласно Официальному API бота:
Getting updates
There are two mutually exclusive ways of receiving updates for your bot
— the getUpdates method on one hand and Webhooks on the other.
Таким образом, PHP-скрипт бота работает по-другому, получая схему
Использовать getUpdates
Доступ к API бота осуществляется через HTTP GET/POST, подробности в официальной справке.
- Используйте бесконечный цикл для чтения сообщений из телеграммы с помощью HTTP GET/POST
Если есть новые сообщения
- Parse message
- Отправить сообщение с помощью HTTP GET/POST
- Спать несколько секунд
Использовать веб-перехватчик
При использовании WebHook (и хорошо настроенном) новое сообщение вашему боту вызовет HTTP-запрос POST с сервера телеграммы на настроенный вами URL-адрес на вашем собственном сервере, проанализированный вашим PHP-скриптом.
В вашем PHP-скрипте проанализируйте новое сообщение, полученное от HTTP POST, и отправьте сообщение обратно с помощью HTTP POST на сервер телеграммы.
Таким образом, разница существует только при получении сообщений из телеграммы, все ответы, отправляемые в телеграмму, отправляются через HTTP GET/POST, подробности в разделе Выполнение запросов в официальном API.
Некоторые люди разозлились на неофициальный API PHP на github:
- https://github.com/tgbot/api
- https://github.com/Ardakilic/Telegram-bot-php
- https://github.com/zelenin/telegram-bot-api
Я предлагаю новичкам начать так:
Найдите BotFather в приложении Telegram.
Отправьте ему команду /newbot. Следуйте его инструкциям.
Он даст вам жетон, что-то вроде
123456789:ABCDefGHIJKLmnopQRstUVwXYz
Откройте окно браузера, введите в адресной строке что-то вроде этого:
https://api.telegram.org/bot<token>/getMe
Например, используя поддельный токен сверху:https://api.telegram.org/bot123456789:ABCDefGHIJKLmnopQRstUVwXYz/getMe
Он должен вернуть информацию о вашем боте в формате JSON. Это показывает, что доступ к Bot API — это не что иное, как выполнение HTTP-запросов.Найдите своего бота в приложении Telegram. Отправьте ему сообщение.
В окне браузера введите:
https://api.telegram.org/bot<token>/getUpdates
Не забудьте заменить токен. Вы должны увидеть только что отправленное сообщение. Обратите внимание на поляfrom
иchat
. Это ты.Затем вы можете попробовать некоторые библиотеки. Чтобы обеспечить некоторый языковой баланс, я предлагаю telepot, фреймворк Python, который у меня есть. созданный. На странице проекта есть много документации и примеров.
Наконец, даже с помощью библиотек я рекомендую вам прочитать базовую документацию по Bot APIсильный>. Понимание этого поможет вам использовать всю его силу.
Удачи.
о API getUpdates и бесконечном цикле, сервер php не может позволить выполнить код более 30 секунд. , поэтому бесконечный цикл работает неправильно.
Я также новичок в Telegram API, но вы можете начать с доступа к этому URL-адресу, в котором вы должны заменить (токен) своим собственным токеном, сгенерированным при покупке BotFather:
https://api.telegram.org/bot(token)/METHOD_NAME
Например, если вы хотите начать обрабатывать запросы, отправленные вашему боту вашим PHP-скриптом, вы должны вызвать это:
https://api.telegram.org/bot(токен)/setWebhook?url=https://yourdomain.com/path_to_your_script/
Обратите внимание, что вы ДОЛЖНЫ иметь веб-сайт с поддержкой SSL, чтобы начать использовать API Telegram.
В качестве ответа на то, что скрипт не может работать более 30 секунд:
использовать set_time_limit (0); чтобы это длилось вечно. Однако имейте в виду, что любая бесконечная петля времени несколько опасна; побочные эффекты, такие как перегрузка процессора или утечка памяти, съедят ваш сервер. Вот почему многие интернет-провайдеры запрещают этот параметр.