ESP8266 not sending messages to telegram bot

Hey guys,
I've been trying to get my esp8266 to send a message to a telegram bot as soon as it connects to the wi-fi, whenever it encounters an obstacle, or whenever an SOS push button is pressed. But I didn't receive any message on telegram whenever I tested for either of the mentioned cases. Let me know if anything is wrong with the code and please suggest ways to make it work.

#include <ArduinoJson.h>
#include <ArduinoJson.hpp>

#include <Servo.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
#include <ESP8266WiFi.h>
#include <WiFiClient.h>

#define trigPinF 2 // Front sensor trig pin
#define echoPinF 0 // Front sensor echo pin
#define trigPinL 5 // Left sensor trig pin
#define echoPinL 4 // Left sensor echo pin
#define trigPinR 14 // Right sensor trig pin
#define echoPinR 12 // Right sensor echo pin
#define ledPin 13 // LED pin
#define vibPin 15 // Vibration motor pin
#define buttonPin 16 // Button pin
#define servoPin 3 // Servo pin

const char* ssid = "XXXXX";
const char* password = "XXXXX";

#define token "XXXXXXXXXXXXXXXXX"
#define telegramChatId "XXXXXXXXXX"

WiFiClientSecure client;
UniversalTelegramBot bot(token, client);

Servo servo;

void setup() {
Serial.begin(115200);

pinMode(trigPinF, OUTPUT);
pinMode(echoPinF, INPUT);
pinMode(trigPinL, OUTPUT);
pinMode(echoPinL, INPUT);
pinMode(trigPinR, OUTPUT);
pinMode(echoPinR, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(vibPin, OUTPUT);
pinMode(buttonPin, INPUT);
servo.attach(servoPin);

WiFi.begin(ssid, password);
Serial.println("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println();
Serial.println("WiFi connected");

bot.sendMessage(telegramChatId, "Bot started up", "");
}

void loop() {
long durationF, distanceF, durationL, distanceL, durationR, distanceR;
digitalWrite(trigPinF, LOW);
delayMicroseconds(2);
digitalWrite(trigPinF, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinF, LOW);
durationF = pulseIn(echoPinF, HIGH);
distanceF = durationF * 0.034 / 2;
digitalWrite(trigPinL, LOW);
delayMicroseconds(2);
digitalWrite(trigPinL, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinL, LOW);
durationL = pulseIn(echoPinL, HIGH);
distanceL = durationL * 0.034 / 2;
digitalWrite(trigPinR, LOW);
delayMicroseconds(2);
digitalWrite(trigPinR, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinR, LOW);
durationR = pulseIn(echoPinR, HIGH);
distanceR = durationR * 0.034 / 2;

if (distanceF < 30) { // Front obstacle detected
digitalWrite(ledPin, HIGH);
digitalWrite(vibPin, HIGH);
bot.sendMessage(telegramChatId, "Obstacle detected!");
if (distanceL > distanceR) { // Turn towards the direction with more space
servo.write(90 + (distanceL - distanceR));
} else { // Turn towards left if both directions have same space
servo.write(90 - (distanceR - distanceL));
}

String message = "Obstacle detected!";

bot.sendMessage(telegramChatId, "Obstacle detected!");
} else {
digitalWrite(ledPin, LOW);
digitalWrite(vibPin, LOW);
}

if (digitalRead(buttonPin) == LOW) { // Button pressed
String message = "Button pressed!";
bot.sendMessage(telegramChatId, "Button pressed!");
}

delay(100);
}

Have you first tried opening the bot via t.me/{bot_name} with the command /start ?