Python Logic и Сложные сценарии
1. Среда выполнения (RestrictedPython)
NextBot использует защищенную среду RestrictedPython. Это накладывает следующие ограничения:
- Доступны только встроенные и разрешенные библиотеки.
- Прямое использование
importдля произвольных библиотек отключено. - Тарификация: 0.01 BotCoin (0.05 в режиме отладки). Требуется тариф Бизнес.
2. Доступные модули
- Математика:
math,abs,round,sum,max,min. - Типы и Структуры:
int,float,str,dict,list,set,len,sorted,any,all. - HTTP:
requests(get, post, put, delete). - Data Serialization:
json,base64,csv. - Утилиты:
hashlib,collections,itertools,re(регулярки),datetime,time,random,urllib.parse.
3. Работа с данными
Входные данные:
Все аргументы функции передаются в скрипт через словарь args.
user_id = args.get("user_id", "guest")
price = args.get("price", 0)
Выходные данные:
Обязательно наличие переменной result. Всё, что в ней находится, будет возвращено ИИ-агенту.
result = {
"status": "ok",
"delivery_date": "2026-05-20",
"tracking_number": "EP-12345"
}
Отладка:
Используйте функцию debug() для вывода сообщений в журнал (только при включенном режиме отладки в настройках функции).
4. Пример: Интеграция с Google Таблицами (через API)
Поскольку прямых SDK нет, работа ведется через requests к Google Apps Script или напрямую к Sheets API.
# Пример отправки сообщения через внешний API
url = "https://api.myapp.com/v1/notify"
payload = {"msg": args.get("comment"), "user": args.get("phone")}
r = requests.post(url, json=payload)
result = {"api_response": r.json()}
5. Custom API (REST)
Для интеграции без написания кода на стороне NextBot:
- Методы: GET, POST, PUT, DELETE.
- Payload: Поддержка JSON body с подстановкой переменных
{{var_name}}. - Авторизация: Передача API Keys в заголовках.
- Инструкция: Custom API Docs.