🌍 Урок 11: API — країни та новини

💡 У цьому уроці ми підключимо:

🌍 API країн
📰 API новин

🌍 API країн (REST Countries)

Цей API повертає інформацію про країни:
✔ столицю
✔ населення
✔ прапор
✔ мови

🔗 URL API

https://restcountries.com/v3.1/name/ukraine
✔ /name/ukraine — шукаємо країну Ukraine

🤖 Код бота

from bendbandbot import SimpleBot import requests # 🔑 читаємо токен with open("token.key", "r", encoding="utf-8") as f: token = f.read().strip() # 🤖 створюємо бота bot = SimpleBot(token) def country(update): # 🌍 URL API url = "https://restcountries.com/v3.1/name/ukraine" # 📡 HTTP запит response = requests.get(url) # 📦 JSON → Python data = response.json() # 📋 перша країна у списку c = data[0] # 📤 відповідь bot.send(update, "🌍 Країна: " + c["name"]["common"] + "\n" "🏙 Столиця: " + c["capital"][0] + "\n" "👥 Населення: " + str(c["population"]) ) # 🎯 команда bot.on_command("country", country) # 🚀 запуск bot.start()
✔ data[0] — перший елемент списку
✔ c["name"]["common"] — вкладений dict
✔ capital[0] — список

📰 API новин (NewsAPI)

⚠ Для цього API потрібен API key.
API key — це спеціальний ключ доступу.

Сервер перевіряє:
✔ хто робить запит
✔ скільки запитів використано

🔑 Реєстрація API key

1️⃣ Перейди на сайт:
https://newsapi.org/
2️⃣ Натисни Register
3️⃣ Створи акаунт
4️⃣ Скопіюй свій API key
5️⃣ Встав його у Python-код

🔗 URL API

https://newsapi.org/v2/top-headlines?country=us&apiKey=YOUR_KEY
✔ country=us — новини США
✔ apiKey= — твій ключ доступу

🤖 Код бота

from bendbandbot import SimpleBot import requests # 🔑 читаємо токен Telegram with open("token.key", "r", encoding="utf-8") as f: token = f.read().strip() # 🤖 створюємо бота bot = SimpleBot(token) def news(update): # 🔑 API key api_key = "YOUR_KEY" # 📰 URL API url = f"https://newsapi.org/v2/top-headlines?country=us&apiKey={api_key}" # 📡 HTTP запит response = requests.get(url) # 📦 JSON data = response.json() # 📋 перша новина article = data["articles"][0] # 📰 заголовок title = article["title"] # 📤 відповідь bot.send(update, "📰 Новина:\n\n" + title ) # 🎯 команда bot.on_command("news", news) # 🚀 запуск bot.start()

📦 JSON відповідь NewsAPI

{ "articles": [ { "title": "Some news title" } ] }
✔ articles — список новин
✔ [0] — перша новина
✔ title — заголовок

🧠 Що ти навчився

✔ працювати з API
✔ використовувати API keys
✔ читати вкладені JSON
✔ працювати зі списками
✔ отримувати реальні дані з інтернету

🧪 Завдання

✍️ Спробуй іншу країну
✍️ Виведи 2 новини
✍️ Подивись print(data)
✍️ Зміни country=us на іншу країну