Telegram message not working


I have checked my bot ID and chat ID multiple times and they are correct, I’ve already checked the codes multiple times, they also appear to be correct, please suggest whats going wrong

CHECK YOUR CODE IS LIKE THIS


IF RIGHT
✓ check connection between bot and telegram and bolt device(simply correct the details in conf file).

Hi @Siddharth_Ghosh,

Apologies for the delay in getting back to you.
The error message you provided indicates an issue with the Telegram API URL you are using in your code. The URL appears to be incorrect, as it contains spaces and an extra “bot” in the middle of the token.

It’s essential to ensure that the URL is constructed correctly with no spaces or additional characters in the token. Please check your telegram_bot_id in your conf.py file and make sure it’s formatted as “botXXXXXXXXXXXXXXXXX” where “XXXXXXXXXXXXXXXXX” is your actual bot token. Also, ensure that there are no extra spaces in the token.

Once you’ve corrected the URL, the Telegram API should work as expected, and you should be able to send messages without encountering a “Not Found” error.

Here is the proper code for your reference:
Code for conf.py

"""Configurations for telegram_alert.py"""
bolt_api_key = "XXXX"               # This is your Bolt Cloud API Key
device_id = "XXXX"                  # This is the device ID and will be similar to BOLTXXXX where XXXX is some numbers
telegram_chat_id = "@XXXX"          # This is the channel ID of the created Telegram channel. Paste after @
telegram_bot_id = "botXXXX"         # This is the bot ID of the created Telegram Bot. Paste after bot
threshold = 250                     # Threshold beyond which the alert should be sent

Code for telegram_alert.py

import requests                 # for making HTTP requests
import json                     # library for handling JSON data
import time                     # module for sleep operation

from boltiot import Bolt        # importing Bolt from boltiot module
import conf                     # config file

mybolt = Bolt(conf.bolt_api_key, conf.device_id)

def get_sensor_value_from_pin(pin):
    """Returns the sensor value. Returns -999 if request fails"""
    try:
        response = mybolt.analogRead(pin)
        data = json.loads(response)
        if data["success"] != 1:
            print("Request not successfull")
            print("This is the response->", data)
            return -999
        sensor_value = int(data["value"])
        return sensor_value
    except Exception as e:
        print("Something went wrong when returning the sensor value")
        print(e)
        return -999


def send_telegram_message(message):
    """Sends message via Telegram"""
    url = "https://api.telegram.org/" + conf.telegram_bot_id + "/sendMessage"
    data = {
        "chat_id": conf.telegram_chat_id,
        "text": message
    }
    try:
        response = requests.request(
            "POST",
            url,
            params=data
        )
        print("This is the Telegram URL")
        print(url)
        print("This is the Telegram response")
        print(response.text)
        telegram_data = json.loads(response.text)
        return telegram_data["ok"]
    except Exception as e:
        print("An error occurred in sending the alert message via Telegram")
        print(e)
        return False


while True:
    # Step 1
    sensor_value = get_sensor_value_from_pin("A0")    
    print("The current sensor value is:", sensor_value)
    
    # Step 2
    if sensor_value == -999:
        print("Request was unsuccessfull. Skipping.")
        time.sleep(10)
        continue
    
    # Step 3
    if sensor_value >= conf.threshold:
        print("Sensor value has exceeded threshold")
        message = "Alert! Sensor value has exceeded " + str(conf.threshold) + \
                  ". The current value is " + str(sensor_value)
        telegram_status = send_telegram_message(message)
        print("This is the Telegram status:", telegram_status)

    # Step 4
    time.sleep(10)

Android: Make sure the latest app version is installed . Go to Telegram Settings > Notifications and Sounds, make sure that notifications are ON and Importance is set to “High” or greater. Check notification priority for Telegram in Android settings, it can be called Importance or Behaviour depending on the device.

The error message “Not Found” and code 404 in the Telegram response show that the Telegram API is not able to find the chat to which you’re trying to send a message.

you can check these:

1 check again whether the URL is correct or not, the letter O and number 0 or the number 1 and letter I may be used incorrectly. so make sure that the correct

2 ensure that your bot is added as a member and that it has the necessary permissions for posting messages in that channel.

3 check your code logic again

4 temporarily disable the firewall if you have one