Скрипт, който да показва прогнозата за времето и го изпраща в 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
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut