Скрипт, който да показва прогнозата за времето и го изпраща в Telegram

За да напишем скрипт, който да показва прогнозата за времето и я изпраща в Telegram, ще използваме Python и библиотеката "pyTelegramBotAPI" за изпращане на съобщения в Telegram, както и библиотеката "requests" за извличане на информация за времето от API на OpenWeatherMap.

Инсталирайте библиотеката "pyTelegramBotAPI" и "requests" чрез командата:

pip install pyTelegramBotAPI requests

Създайте нов бот в Telegram, като следвате инструкциите в този линк.

След като получите токена за вашия бот, може да започнете да изпращате съобщения. Ето как бихме могли да го направим:

import telebot
import requests

# Въведете токена за вашия бот
bot_token = 'YOUR_BOT_TOKEN_HERE'

# Въведете API ключа за OpenWeatherMap
api_key = 'YOUR_API_KEY_HERE'

# Създаваме обект за бота
bot = telebot.TeleBot(bot_token)

# Извличаме прогнозата за времето от OpenWeatherMap API
def get_weather():
    url = f"http://api.openweathermap.org/data/2.5/weather?q=Sofia&appid={api_key}&units=metric"
    response = requests.get(url)
    data = response.json()
    return data['main']['temp'], data['weather'][0]['description']

# Изпращаме прогнозата за времето в Telegram
def send_weather():
    temperature, description = get_weather()
    message = f"The current temperature in Sofia is {temperature}°C and the weather is {description}."
    bot.send_message(chat_id='YOUR_CHAT_ID_HERE', text=message)

# Извикваме функцията за изпращане на прогнозата за времето
send_weather()

Забележете, че трябва да замените 'YOUR_BOT_TOKEN_HERE' с токена на вашия бот, 'YOUR_API_KEY_HERE' с API ключа за OpenWeatherMap и 'YOUR_CHAT_ID_HERE' с идентификатора на чата, в който искате да изпратите съобщението. Можете да намерите идентификатора на чата, като използвате бота "User Info Bot" в Telegram.

Как бихме направили същият скрипт, но на Bash?

Ето един вариант на такъв скрипт:

Ще направим скрипта на Bash като използваме командата curl за извличане на информация за времето от API на OpenWeatherMap и командата curl за изпращане на съобщението в Telegram. Ето как бихме могли да го направим:

#!/bin/bash

# Въведете токена за вашия бот
BOT_TOKEN="YOUR_BOT_TOKEN_HERE"

# Въведете API ключа за OpenWeatherMap
API_KEY="YOUR_API_KEY_HERE"

# Извличаме прогнозата за времето от OpenWeatherMap API
WEATHER=$(curl -s "http://api.openweathermap.org/data/2.5/weather?q=Sofia&appid=$API_KEY&units=metric")
TEMPERATURE=$(echo "$WEATHER" | jq -r '.main.temp')
DESCRIPTION=$(echo "$WEATHER" | jq -r '.weather[0].description')

# Изпращаме съобщението в Telegram
curl -s -X POST "https://api.telegram.org/bot$BOT_TOKEN/sendMessage" \
    -d chat_id="YOUR_CHAT_ID_HERE" \
    -d text="The current temperature in Sofia is ${TEMPERATURE}°C and the weather is ${DESCRIPTION}."

Забележете, че трябва да замените 'YOUR_BOT_TOKEN_HERE' с токена на вашия бот, 'YOUR_API_KEY_HERE' с API ключа за OpenWeatherMap и 'YOUR_CHAT_ID_HERE' с идентификатора на чата, в който искате да изпратите съобщението. За да използвате този скрипт, трябва да имате инсталирани curl и jq. Можете да ги инсталирате с командите:

sudo apt-get update
sudo apt-get install curl jq

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:

Telegram Logo
Avatar photo

Fedia

Здравейте, urocibg.eu е независим уебсайт, който е създаден и подържан от мен – Федя Серафиев. Сайта съм го основал през 2008 година и съдържа статии, съвети, ръководства, новини и програми за Windows, Android и Linux. Ако имате въпроси относно възможностите за реклама в сайта или за връзка с мен ТУК.

Може да харесате още...