Поиск
10 мес.

Создание Telegram-бота на Python для поиска данных в Google Sheets

Чтобы создать Телеграм-бота, который ищет информацию в Google Sheets, вам потребуется выполнить следующие шаги: 1.

Все материалы категории
Все материалы

Создать бота в Telegram через BotFather и получить его API токен.

1. Создать бота в Telegram через BotFather и получить его API токен.

2. Настроить доступ к Google Sheets API и получить необходимые учетные данные для авторизации.

3. Написать код на Python, использующий библиотеку `telebot` для Telegram бота и библиотеку `gspread` для работы с Google Sheets.

Шаг 1: Создание бота в Telegram

Обратитесь к @BotFather в Telegram и следуйте инструкциям для создания нового бота. Запишите токен, который вам выдадут.

Шаг 2: Настройка Google Sheets API

1. Перейдите в [Google Developers Console](https://console.developers.google.com/).

2. Создайте новый проект.

3. Включите Google Sheets API для этого проекта.

4. Создайте учетные данные для доступа к API, выбрав сервисный аккаунт.

5. Скачайте JSON файл с учетными данными.

6. Поделитесь своей таблицей с электронным адресом сервисного аккаунта.

Шаг 3: Код Telegram бота с поиском в Google Sheets

Для работы с ботом используем библиотеку `pyTelegramBotAPI`, а для доступа к таблицам – `gspread`. Установите их при помощи pip:

				
					pip install pyTelegramBotAPI gspread oauth2client

				
			

Теперь вы готовы написать код бота. Сначала необходимо произвести авторизацию и получить доступ к таблице:

				
					
import telebot
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# Токен бота
bot_token = 'ВАШ_TELEGRAM_BOT_TOKEN'
bot = telebot.TeleBot(bot_token)

# Авторизация в Google Sheets
scope = ["https://spreadsheets.google.com/feeds", 'https://www.googleapis.com/auth/spreadsheets',
         "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]

creds = ServiceAccountCredentials.from_json_keyfile_name("path_to_your_credentials_file.json", scope)
client = gspread.authorize(creds)
sheet = client.open("название_гугл_таблицы").sheet1

# Функция поиска информации в таблице
def search_in_sheet(query):
    # Получаем все записи из таблицы
    records = sheet.get_all_records()
    # Фильтруем записи по запросу
    result = [record for record in records if query.lower() in str(record).lower()]
    return result

# Обработчик команды /start
@bot.message_handler(commands=['start'])
def send_welcome(message):
    bot.reply_to(message, "Вас приветствует бот поиска информации! Отправьте текст для поиска.")

# Обработчик текстовых сообщений
@bot.message_handler(content_types=['text'])
def handle_text(message):
    bot.reply_to(message, "Ищем информацию...")
    results = search_in_sheet(message.text)
    response = "Результаты:\n" + "\n".join([str(result) for result in results]) if results else "Ничего не найдено."
    bot.reply_to(message, response)

if __name__ == '__main__':
    bot.polling(non_stop=True)

				
			
В этом коде есть все, что вам нужно для создания Telegram бота, который будет искать по запросам пользователя информацию в таблице Google Sheets и отправлять результаты обратно в чат. Не забудьте заменить `»ВАШ_TELEGRAM_BOT_TOKEN»` на актуальный токен Telegram бота, `»path_to_your_credentials_file.json»` на путь к JSON файлу с учетными данными Google и `»название_гугл_таблицы»` на название вашей таблицы в Google Sheets.

Поиск по сайту

Поиск

Вход в аккаунт