Привет! Я решил опробовать создание бота с использованием библиотеки Aiogram на языке программирования Python. Моя цель была создать бота, который будет считать время выполнения работы сотрудника и записывать данные в Google таблицы. Вот как я это сделал⁚
Сначала я установил библиотеку Aiogram с помощью команды `pip install aiogram`. Она позволяет легко создавать ботов для платформы Telegram.Затем я создал новый проект на платформе Telegram и получил токен для доступа к боту.Далее я написал следующий код⁚
python
import asyncio
from datetime import datetime
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from google.oauth2 import service_account
from googleapiclient.discovery import build
# Загружаем информацию о Google-аккаунте из JSON-файла
credentials service_account.Credentials.from_service_account_file(‘credentials.json’)
# Создаем экземпляр клиента Google Sheets
service build(‘sheets’, ‘v4′, credentialscredentials)
sheet service.spreadsheets
# Создаем экземпляры бота и диспетчера
bot Bot(token’YOUR_TELEGRAM_TOKEN’)
dp Dispatcher(bot)
# Обработчик команды старта отсчета времени
@dp.message_handler(commands[‘start_working_time’])
async def start_working_time(message⁚ types.Message)⁚
# Записываем время начала работы сотрудника
start_time datetime.now.strftime(‘%Y-%m-%d %H⁚%M⁚%S’)
await message.reply(f’Время начала работы⁚ {start_time}’)
# Обработчик команды окончания работы
@dp.message_handler(commands[‘end_working_time’])
async def end_working_time(message⁚ types.Message)⁚
# Записываем время окончания работы сотрудника
end_time datetime.now.strftime(‘%Y-%m-%d %H⁚%M⁚%S’)
await message.reply(f’Время окончания работы⁚ {end_time}’)
# Разность значений времени
time_difference end_time ‒ start_time
# Получаем имя сотрудника
user_name message.from_user.first_name
# Записываем данные в Google таблицы
values [
[user_name, time_difference],
]
body {‘values’⁚ values}
result sheet.values.append(
spreadsheetId’YOUR_SPREADSHEET_ID’,
range’Sheet1!A⁚B’,
valueInputOption’RAW’,
bodybody
).execute
print(f'{result.get(″updates″).get(″updatedRows″)} rows updated.’)
# Запускаем бота
if __name__ ‘__main__’⁚
executor.start_polling(dp, skip_updatesTrue)
В данном коде я использовал асинхронный стиль программирования с помощью библиотеки asyncio. Я создал бота с помощью класса `Bot` и диспетчер с помощью класса `Dispatcher`. Затем я определил два обработчика команд⁚ один для начала отсчета времени и другой для окончания работы. В обработчике команды начала отсчета времени я записываю текущее время как время начала работы сотрудника и отправляю его обратно пользователю. В обработчике команды окончания работы я записываю текущее время как время окончания работы сотрудника и вычисляю разность значений времени. Затем я получаю имя сотрудника и создаю список значений для записи в Google таблицы. После этого я использую API Google Sheets для записи данных в таблицу. Таким образом, мой бот может отслеживать время выполнения работы сотрудника и записывать данные в Google таблицы. Надеюсь, эта статья окажется полезной для тебя. Удачи в создании своих собственных ботов на платформе Telegram с использованием библиотеки Aiogram!