I can compile without errors this simple sketch, but as I said before, the client must handle SSL connection and the Arduino WiFi library doesn't support SSL.
So additional SSLClient library is needed (you will have to be patient because the compilation times take quite a bit).
/*
Name: echoBot.ino
Created: 26/03/2021
Author: Tolentino Cotesta <cotestatnt@yahoo.com>
Description: a simple example that check for incoming messages
and reply the sender with the received message.
The message will be forwarded also in a public channel
anad to a specific userid.
*/
#include <AsyncTelegram2.h>
#include <SSLClient.h>
#include <tg_certificate.h>
// Timezone definition
#include <time.h>
#define MYTZ "CET-1CEST,M3.5.0,M10.5.0/3"
#include <WiFi.h>
WiFiClient base_client;
int status = WL_IDLE_STATUS;
SSLClient client(base_client, TAs, (size_t)TAs_NUM, A0, 1, SSLClient::SSL_ERROR );
AsyncTelegram2 myBot(client);
const char* ssid = "xxxxxxxxx"; // SSID WiFi network
const char* pass = "xxxxxxxxx"; // Password WiFi network
const char* token = "xxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // Telegram token
// Target user can find it's own userid with the bot @JsonDumpBot
// https://t.me/JsonDumpBot
int64_t userid = 123456789;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
// initialize the Serial
Serial.begin(115200);
Serial.println("\nStarting TelegramBot...");
// check for the WiFi module:
if (WiFi.status() == WL_NO_SHIELD) {
Serial.println("Communication with WiFi module failed!");
// don't continue
while (true);
}
// attempt to connect to Wifi network:
while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);
// wait 3 seconds for connection:
delay(3000);
}
Serial.println("Connected to wifi");
// Set the Telegram bot properies
myBot.setUpdateTime(2000);
myBot.setTelegramToken(token);
// Check if all things are ok
Serial.print("\nTest Telegram connection... ");
myBot.begin() ? Serial.println("OK") : Serial.println("NOK");
char welcome_msg[128];
snprintf(welcome_msg, 128, "BOT @%s online\n/help all commands avalaible.", myBot.getBotName());
// Send a message to specific user who has started your bot
myBot.sendTo(userid, welcome_msg);
}
void loop() {
static uint32_t ledTime = millis();
if (millis() - ledTime > 150) {
ledTime = millis();
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
// local variable to store telegram message data
TBMessage msg;
// if there is an incoming message...
if (myBot.getNewMessage(msg)) {
// Send a message to your public channel
String message ;
message += "Message from @";
message += myBot.getBotName();
message += ":\n";
message += msg.text;
Serial.println(message);
// echo the received message
myBot.sendMessage(msg, msg.text);
}
}