Telegram бот на delphi

Бродив тут по інтернету в пошуках нових блогів про програмування на delphi і натрапив на блог про програмування на lazarus, там була пара статей про те як почати робити бота для Telegram. Ця тема мене раніше як то не цікавила, але тут вирішив спробувати написати хоча б маленького бота що б розібратися з принципами роботи. Побродивши по інтернету в пошуках напрацювань з даного питання, я нічого цікавого не знайшов, в основному це були бібліотеки для роботи з telegram за допомогою C #, Python, PHP для delphi знайшов тільки один якийсь пробний проект на github. Тому вирішив спробувати зробити все сам з нуля так сказати.

Що б почати створювати бота необхідно його зареєструвати в системі Telegram.

Спочатку вводиться команда / newbot Потім система запропонує ввести ім'я для бота, якщо ім'я систему влаштує вона запропонує вказати для користувача ім'я для бота з обов'язковим закінченням імені на bot або _bot, якщо все протягнуто успішно то система вам видати унікальний ідентифікатор бота, який потім можна буде використовувати для роботи. Він приблизно такого вигляду 12345678: AAHOjf ***** ROYb03utz *********. Більш докладно можна почитати тут.

Telegram бот на delphi

Спілкування з системою відбувається за допомогою HTTPS запитів GET і POST, як параметри запиту можна передавати

  • URL query string
  • application / x-www-form-urlencoded
  • application / json (крім завантаження файлів)
  • multipart / form-data (для завантаження файлів)

Якщо запит виконаний вдало то у відповідь система поверне json об'єкт

Де поле ok дорівнюватиме true.

Оскільки раніше мені не доводилося працювати з synapse то довелося звернутися до інтернету, там знайшлася добірка статей по роботі з даною бібліотекою.

Після скачування всього і вся я створив простий проект додатки в середовищі delphi.

В розділ uses додав httpsend, ssl_openssl, superobject і почав експериментувати.

Оскільки для роботи з сервісом використовується шифрування з'єднання то для початку створюється компонент httpsend з використанням шифрування.

Потім дані об'єкт можна використовувати для роботи із запитами.

В якості першого запиту я вирішив отримати інформацію про боті.

Виконується це за допомогою запиту.

У коді це виглядало так

Як результат сервіс повертає JSON об'єкт, який распарсівается за допомогою об'єкта ISuperObject.

У запит передаються параметри

Ідентифікатор першого повідомлення з якого необхідно отримувати дані, повинен бути на одиницю більше ніж останнім отримане повідомлення.

Обмежувач на кількість повертаються оновлень, за замовчуванням дорівнює 100


Яким це чином все підключається?

Скиньте будь ласка весь исходник, дуже прошу) Email lexa999tihgmail.com

I do not even understand how I finished up here, but I
assumed this post used to be good. I do not understand who you're however certainly you are going to
a well-known blogger when you are not already. Cheers!

You are so interesting! I do not believe I've
read something like that before. So nice to find somebody
with some original thoughts on this topic.
Seriously. thanks for starting this up. This site is something that is required on the internet, someone with a little originality!

Схожі статті