Перейти к содержимому

Attach Bot

PUT
/v1/deployments/{deployment_id}/bot
curl --request PUT \
--url https://api.cloud.agentums.ru/v1/deployments/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/bot \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "bot_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "owner_tg_id": 1 }'

Отдать этому развёртыванию бота владельца: отвечать в Telegram будет агент на машине.

!!! warning “Бот перестаёт быть нашим” Telegram отдаёт сообщения ровно одному потребителю, поэтому наш рантайм для этого бота выключается. Вместе с ним уходят память разговора, история в приложении, подтверждение опасных действий кнопками и метеринг — всё это наше, а у агента на машине своё.

Отвязка (`DELETE`) возвращает бота обратно нам. Снос машины — тоже: бот не должен
остаться немым из-за того, что развёртывания больше нет.

Бот и развёртывание обязаны принадлежать одному владельцу — оба берутся из авторизации, а не из тела. Чужой идентификатор отвечает 404, как и несуществующий.

deployment_id
required
Deployment Id
string format: uuid
Media typeapplication/json
DeploymentBotIn

Какого бота владельца отдать развёртыванию и кого агент должен слушаться.

owner_tg_id — числовой идентификатор в Telegram того, кому агент отвечает. Без него агент не отвечает НИКОМУ: чужой бот находится в Telegram по имени, и «отвечать всем» означало бы отдать агента вместе с доступом к файлам первому встречному.

Поле необязательное, и это не послабление. Узнать свой идентификатор человек может ровно одним способом, не привлекая сторонних ботов: написать своему боту и прочитать ответ — агент сам его называет, пока владелец не задан. Поэтому порядок «сначала подключил, потом написал, потом вписал идентификатор» не лишний шаг, а единственный возможный.

object
bot_id
required
Bot Id
string format: uuid
owner_tg_id
Any of:
integer
> 0
Examplegenerated
{
"bot_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"owner_tg_id": 1
}

Successful Response

Media typeapplication/json
DeploymentBotOut

Чей бот обслуживается этим развёртыванием.

attached=False при пустом bot_id означает «бота не отдавали». Токен наружу не уходит ни в каком виде — ни здесь, ни где-либо ещё: он хранится шифрованным и существует в открытом виде только в настройках агента на машине владельца.

object
attached
Attached
boolean
bot_id
Any of:
string format: uuid
claim_link
Claim Link
string
""
on_air
On Air
boolean
owner_bound
Owner Bound
boolean
username
Username
string
""
Example
{
"attached": false,
"claim_link": "",
"on_air": false,
"owner_bound": false,
"username": ""
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Examplegenerated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}