Телеграм бот для добавления задач в Asana, с чего начать?

Рейтинг: 0Ответов: 1Опубликовано: 19.01.2023

Покопался в документации Asana, нашел реализацию слушателей (web-хуков) для событий в самой Asana, мне же нужно для теста создать бота в телеграм, который будет добавлять задачи, помогите пожалуйста с чего начать копать?

Ответы

▲ 1Принят

Пример кода бота с применением Asana API:

import os
import json
from flask import Flask, request
from asana import Client
from pyrogram import Client as TelegramClient

app = Flask(__name__)
telegram_client = TelegramClient("my_telegram_bot")
asana_client = Client.access_token("my_asana_access_token")

# function to handle incoming webhooks from Asana
@app.route("/webhook", methods=["POST"])
def handle_webhook():
    data = json.loads(request.data)
    task_name = data["data"]["name"]
    task_url = data["data"]["html_url"]

    # send message to Telegram channel with task name and url
    telegram_client.send_message("my_channel_username", f"New task added: {task_name}\n{task_url}")
    return "OK"

# function to handle commands from Telegram
@telegram_client.on_message(command="addtask")
def handle_add_task(client, message):
    task_name = message.text.split(" ", 1)[1]
    new_task = asana_client.tasks.create({"workspace": "my_workspace_id", "name": task_name})
    message.reply(f"Task added with id: {new_task['id']}")

if __name__ == "__main__":
    # start the Telegram bot
    telegram_client.run()
    # start the Flask app to handle webhooks
    app.run(port=int(os.environ.get("PORT", 5000)))

Это телеграм-бот для добавления задач. Что я тут сделал:

Импортировал os, json, Flask, asana, pyrogram.

Создал экземпляры классов Flask и TelegramClient, а также объект Asana, используя токен доступа.

Создал функцию handle_webhook() для обработки входящих webhooks из Asana. Эта функция использует метод POST и обрабатывает данные из webhook, извлекая имя задачи и URL. Затем она отправляет сообщение в Telegram канал с именем задачи и URL.

Заключительный шаг - добавил функцию handle_add_task() для обработки команд из Telegram. Эта функция вызывается, когда пользователь отправляет команду "/addtask" и имя задачи. Функция использует Asana API для создания новой задачи и отправляет ответ пользователю с ID новой задачи.