Skip to content
/ CTBot Public

A simple (and easy to use) Arduino Telegram BOT Library for ESP8266/ESP32

License

Notifications You must be signed in to change notification settings

shurillu/CTBot

Repository files navigation

CTBot

Branch: master - Build Status


Introduction

CTBot is a simple Arduino class to manage Telegram Bot on ESP8266/ESP32 platform. It relies on ArduinoJson library so, in order to use a CTBot object, you need to install the ArduinoJson library first (you can use library manager). You also need to install the ESP8266 Arduino Core and Library or the ESP32 Arduino Core and Library. Don't you know Telegram bots and how to setup one? Check this.

  • ESP8266 don't use anymore the fingerprint for Telegram certificate validation
  • Now ArduinoJson version 5 and 6 are supported!
  • getNewMessage method now is more responsive!!

IMPORTANT - There are some incompatibilities with the ArduinoJson v 6.20.0. The last supported version is the 6.19.4

News

  • ESP32 supported
  • ArduinoJson version 5 and 6 supported

Feature

  • ESP8266/ESP32 supported
  • Manage WiFi connection (methods for connecting to an access point, set a static IP)
  • Send and receive messages
  • Inline keyboards
  • Receive localization messages
  • Reply keyboards
  • Receive contacts messages

Supported boards

The library works with the ESP8266/ESP32 chipset: all the ESP8266/ESP32 boards are supported.

Simple usage

See the EchoBot example provided in the examples folder.

Reference

Here how to use the library.

Special thanks

A special thanks go to these people who helped me making this library

Future work

  • Add Telegram inline keyboards
  • Add ESP32 support & testing
  • ArduinoJSON 6 support

Changelog

  • 2.1.14 ESP8266 authentication issue when user defined WiFi connection
  • 2.1.13 ESP32 compile error
  • 2.1.12 No more fingerprint certificate validation for ESP8266
  • 2.1.11 Fixed an issue on group/chat ID in callback queries
  • 2.1.10 ESP8266 fingerprint key updated
  • 2.1.9 ESP8266 fingerprint key updated
  • 2.1.8 Fixed echobot and lightbot examples
  • 2.1.7 Telegram User ID is now int64 as Telegram Bot API changes
  • 2.1.6 Fix GET url adding full symbolic name
  • 2.1.5 Added SSL certificate verification for ESP32 SOC
  • 2.1.4 Fix an issue involving the inline keyboard
  • 2.1.3 correct a platformIO library issue that doesn't download the CTBotWifiSetup.* files
  • 2.1.2 getNewMessage is no more blocking as before; moved all static strings to FLASH (only for ESP8266 - +1 KB heap free)
  • 2.1.1 Memory optimization
  • 2.1.0 ArduinoJSON 5 and 6 support
  • 2.0.0 ESP32 support
  • 1.4.1 New Telegram Server IP and fingerprint update
  • 1.4.0 Reply keyboard added. Contact messages functionality added
  • 1.3.2 Bug fixing and new functionalities:
    • URL encoding: now it is possible to send all kind of characters
    • Added group infos (ID and Group title) in the TBMessage structure
  • 1.3.1 Fixed an issue that doesn't support negative and 64 bit values for chatID/groupID: now it use int64 numbers. This issue involved the CTBot::sendMessage() method.
  • 1.3.0 added new functionalities:
    • 2.5.0 ESP8266 toolchain support
    • Telegram server fingerprint authentication added
    • bugfixing:
      • 'TBUser' data now are populated correctly
      • Fixed a bug that doesn't send correctly some kind of messages
  • 1.2.0 Added localization messages, bug fixing
  • 1.1.1 Minor bug fixing
  • 1.1.0 Added inline keyboards, bug fixing
  • 1.0.1 Better performance, new algorithm for Telegram server queries: now sending and receiving messages requires almost no time.
  • 1.0.0 Initial version