Intereting Posts
Как удалить, если данные дублируются? проверка формы в php создать событие mysql при нажатии кнопки, чтобы удалить первую строку таблицы каждые 5 минут? Отправить электронное письмо нескольким получателям на основе выбранной опции в php? Сортировка массива по ключам на основе другого массива? Как установить заголовок JSON в фреймворке Slim 3 (PHP)? Laravel: Правильный способ получить Eloquent для создания вложенного SELECT Получение значений из флажка нечеткий поиск массива в php PHP называет «null» для файла JSON, написанного Python Предупреждение: mysql_real_escape_string () ожидает, что параметр 1 будет строкой Как настроить Codeigniter для сообщения обо всех ошибках? Использует ли PHP-деструктор для отображения HTML? Можно ли проверить, существует ли установленный ключ Redis, и если он не существует, установите его, если он существует, а затем выйдите, все как транзакция fsockopen (): php_network_getaddresses: getaddrinfo не удалось: имя или услуга неизвестны

Вызов API телеграмм для создания бота-загрузчика

Я видел, что новый API для ботов включен для создания custome-ботов, я видел некоторые источники, такие как это, и я также читал о @fatherbot который посвящен регистрации ботов, я также искал некоторые примеры ботов телеграмм, таких как этот , Я знаю, как писать коды в php и python но не могу узнать, как вызвать методы api и где начать. Кто-нибудь знает, как начать?

Вы могли бы просто использовать мою новую библиотеку для бота api телеграммы! https://github.com/tekook/TelegramLibrary

Он имеет все функции нового api и является простым в использовании и основанным на событиях libarry!

Повеселись!

Вы можете использовать этот базовый пример, чтобы начать работу. Я бы предложил добавить немного больше пользы, используя 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 bot работает по-другому, используя схему

Использовать getUpdates

Доступ к бот-API осуществляется через HTTP GET / POST, подробно в официальной помощи.

  • Используйте бесконечный цикл для чтения сообщений из телеграммы с помощью HTTP GET / POST
  • Если есть новые сообщения

    • Разбор сообщения
    • Отправить сообщение с HTTP GET / POST
    • Сон несколько секунд

Использовать WebHook

При использовании WebHook (и хорошо сконфигурированной) новое сообщение вашему боту вызовет запрос HTTP POST с сервера телеграммы на ваш настроенный URL-адрес на вашем собственном сервере, проанализированный вашим PHP-скриптом.

В вашем скрипте PHP проанализируйте новое сообщение из HTTP POST и отправьте сообщение с HTTP POST на сервер телеграмм.


Таким образом, разница существует только при получении сообщений из телеграммы, все ответы отправляются на телеграмму через HTTP GET / POST, подробно в разделе «Выполнение запросов» в официальном API.

Некоторые люди с ума сошли на неофициальный PHP api на github:

Я предлагаю начинающим начинать этот путь:

  1. Поиск BotFather в приложении Telegram

  2. Отправьте ему команду / newbot . Следуйте его инструкциям.

  3. Он даст вам токен, что-то вроде 123456789:ABCDefGHIJKLmnopQRstUVwXYz

  4. Откройте окно браузера, введите в адресной строке что-то из этой формы: https://api.telegram.org/bot<token>/getMe
    Например, используя фальшивый токен сверху: https://api.telegram.org/bot123456789:ABCDefGHIJKLmnopQRstUVwXYz/getMe
    Он должен вернуть информацию вашего бота в формате JSON. Это показывает, что доступ к API-интерфейсу Bot – это не что иное, как создание HTTP-запросов.

  5. Найдите своего бота в приложении Telegram. Отправьте ему сообщение.

  6. В окне браузера введите: https://api.telegram.org/bot<token>/getUpdates
    Не забудьте заменить токен. Вы должны увидеть сообщение, которое вы только что отправили. Обратите внимание на поле from и chat . Это ты.

  7. Затем вы можете попробовать некоторые библиотеки. Чтобы дать некоторый языковой баланс здесь, я предлагаю телепот , структуру Python, которую я создал. На странице проекта много документов и примеров.

Наконец, даже с помощью библиотек, я рекомендую вам ознакомиться с базовыми документами API Bot . Понимание этого помогает вам использовать всю свою мощь.

Удачи.

о API getUpdates и бесконечном цикле, php-сервер не может выполнить код более 30 секунд. , поэтому бесконечный цикл работает неправильно.

Я также новичок в Telegram API, но вы можете начать с доступа к этому URL, в котором вы должны заменить (токен) своим собственным токеном, сгенерированным buy BotFather:

https://api.telegram.org/bot(token)/METHOD_NAME

Например, если вы хотите начать обработку запросов, отправленных вашему боту с помощью PHP-скрипта, вы должны называть это:

https://api.telegram.org/bot(token)/setWebhook?url=https://yourdomain.com/path_to_your_script/

Пожалуйста, не делайте того, чтобы вы ДОЛЖНЫ иметь веб-сайт с поддержкой SSL, чтобы начать использовать API телеграмм.

В качестве ответа на сценарий, который не может работать более 30 секунд:

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