Начать пользоваться на www.aijora.ru
AijoraДокументация
Интеграции

Интеграция с Telegram

Создание Telegram ботов с Aijora API

Создайте Telegram бота, который использует Aijora API для ответов. Бот может общаться с пользователями через текст, генерировать изображения и работать с любыми моделями из 300+ доступных.

Интеграция с Aijora API

Telegram боты отлично работают с Aijora API.

Преимущества:

  • 300+ моделей от разных провайдеров в одном API
  • Контроль расхода и аналитика в дашборде Aijora API
  • Поддержка различных валют включая рубли
  • Стабильная работа и быстрый доступ

Создание бота

Создайте бота через BotFather

  1. Откройте @BotFather в Telegram
  2. Отправьте /newbot
  3. Придумайте имя и username для бота
  4. Скопируйте API токен бота

Выберите способ реализации

Есть несколько вариантов:

  • Python (aiogram) — для полного контроля и сложной логики
  • n8n — для быстрого прототипирования без кода
  • Make — для интеграции с другими сервисами

Вариант 1: Python (aiogram)

pip install aiogram requests python-dotenv

Создайте файл .env:

TELEGRAM_BOT_TOKEN=ваш_токен_бота
AIJORA_API_KEY=ваш_api_ключ
import os
import asyncio
import requests
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from dotenv import load_dotenv

load_dotenv()

bot = Bot(token=os.getenv('TELEGRAM_BOT_TOKEN'))
dp = Dispatcher()

def ask_aijora(message: str) -> str:
    """Отправляет запрос к Aijora API"""
    response = requests.post(
        'https://api.aijora.com/api/v1/chat/completions',
        headers={
            'Authorization': f'Bearer {os.getenv("AIJORA_API_KEY")}'
        },
        json={
            'model': 'gpt-4o-mini',
            'messages': [
                {'role': 'user', 'content': message}
            ]
        }
    )
    
    data = response.json()
    return data['choices'][0]['message']['content']

@dp.message(Command('start'))
async def cmd_start(message: types.Message):
    await message.answer('Привет! Я AI бот. Задай мне любой вопрос!')

@dp.message()
async def handle_message(message: types.Message):
    # Показываем что бот печатает
    await message.bot.send_chat_action(message.chat.id, 'typing')
    
    # Получаем ответ от Aijora API
    answer = ask_aijora(message.text)
    
    # Отправляем ответ пользователю
    await message.answer(answer)

async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    asyncio.run(main())

Запустите:

python bot.py
import os
import base64
import asyncio
import requests
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
from aiogram.types import BufferedInputFile
from dotenv import load_dotenv

load_dotenv()

bot = Bot(token=os.getenv('TELEGRAM_BOT_TOKEN'))
dp = Dispatcher()

def generate_image(prompt: str) -> bytes:
    """Генерирует изображение через Aijora API"""
    response = requests.post(
        'https://api.aijora.com/api/v1/images/generations',
        headers={
            'Authorization': f'Bearer {os.getenv("AIJORA_API_KEY")}'
        },
        json={
            'model': 'gemini-2.5-flash-image',
            'prompt': prompt
        }
    )
    
    data = response.json()
    base64_image = data['data'][0]['b64_json']
    
    # Декодируем base64
    return base64.b64decode(base64_image)

@dp.message(Command('start'))
async def cmd_start(message: types.Message):
    await message.answer(
        'Привет! Я бот для генерации изображений.\n'
        'Команды:\n'
        '/image <описание> - сгенерировать картинку'
    )

@dp.message(Command('image'))
async def cmd_image(message: types.Message):
    # Получаем описание (текст после /image)
    prompt = message.text.replace('/image', '').strip()
    
    if not prompt:
        await message.answer('Напишите описание: /image закат над океаном')
        return
    
    await message.answer('Генерирую изображение...')
    
    # Генерируем изображение
    image_bytes = generate_image(prompt)
    
    # Отправляем в Telegram
    photo = BufferedInputFile(image_bytes, filename='image.jpg')
    await message.answer_photo(photo, caption=f'Промпт: {prompt}')

async def main():
    await dp.start_polling(bot)

if __name__ == '__main__':
    asyncio.run(main())

Использование:

/image красивый закат над океаном, фотореалистично

Вариант 2: n8n

В n8n создайте workflow:

Telegram Trigger → HTTP Request (Aijora API) → Telegram Send Message

Подробнее смотрите в разделе Интеграция с n8n.

Вариант 3: Make

В Make создайте scenario:

Telegram (Watch Updates) → HTTP (Aijora API) → Telegram (Send Message)

Подробнее смотрите в разделе Интеграция с Make.

Полезные ссылки