Permisos
Qué puede y qué no puede hacer un bot, con la lista real de permisos de Huwi, quién los define y qué queda cerrado para siempre.
Un bot es una cuenta con la clave en la mano, pero no puede hacer todo. Cada procedimiento de la API tiene un permiso, y lo que Huwi no clasificó queda cerrado.
Quién decide qué puede hacer
Tres capas, de afuera hacia adentro:
- El equipo de Huwi define los permisos para todos los bots y, si hace falta, para un bot en particular.
- El dueño puede apagar los permisos de sus bots, con Permisos en el menú del bot en @gepeto. No puede prender uno que el equipo cerró.
- Siempre cerrado: entrar a una cuenta, claves, pagos, lo del equipo, Ronda, Conocer y las llamadas. No hay permiso que lo abra.
Un permiso vale si el equipo lo tiene prendido y el dueño no lo apagó. Para saber lo que tiene tu bot, llama bot.me: trae permissions con cada uno en true o false.
Si un bot usa algo que no puede, la API responde FORBIDDEN con botPermission.
Los permisos
| Permiso | Qué deja hacer | Procedimientos |
|---|---|---|
Cuenta pública publicAccount | Reservado: hoy no abre ni cierra ningún procedimiento. Aparece en el panel del equipo y en @gepeto. | — |
Perfil profile | Cambiar el nombre, la foto y la presentación del bot, y bloquear o desbloquear cuentas. | 19 |
Publicar post | Crear y borrar publicaciones, cambiar su audiencia o ajustes, repostear y crear encuestas. | 17 |
Historias story | Publicar historias y borrarlas. | 3 |
Comentar comment | Escribir, editar y borrar comentarios. | 3 |
Reaccionar react | Dar me gusta y reaccionar a publicaciones, comentarios e historias. | 5 |
Seguir follow | Seguir y dejar de seguir cuentas, y aceptar o rechazar solicitudes. | 4 |
Mensajes messages | Mandar, editar, borrar y reaccionar a mensajes en los chats donde el bot puede contestar. | 33 |
Fotos del chat chatMedia | Subir las fotos y videos que el bot manda en un chat. | 1 |
Componentes components | Mandar tarjetas, botones y formularios, y plantillas. | 1 |
Grupos groups | Estar y hablar en grupos (además de que su dueño los permita con @gepeto). | 1 |
Leer read | Leer publicaciones, perfiles, comentarios, búsquedas, Descubrir y el resto de lo público. | 131 |
Música music | Escuchar, armar listas y, si la cuenta es de artista, subir canciones. | 40 |
El detalle de cada procedimiento está en la referencia de la API.
Lo que un bot siempre puede usar
Estos procedimientos no piden permiso: el bot los necesita para funcionar (pedir novedades, saber quién es, contestar un botón, cambiarse de sesión).
| Procedimiento | Permiso | Para qué |
|---|---|---|
api.index | always | La lista de procedimientos que esta clave puede usar, con su forma. |
auth.deviceSessions | always | Cuentas de este dispositivo, para volver a la tuya o salir. |
auth.getSession | always | Qué cuenta es la de la clave. |
auth.linkedAccounts | always | Cuentas de este dispositivo, para volver a la tuya o salir. |
auth.revoke | always | Cuentas de este dispositivo, para volver a la tuya o salir. |
auth.setActive | always | Cuentas de este dispositivo, para volver a la tuya o salir. |
auth.signOut | always | Cuentas de este dispositivo, para volver a la tuya o salir. |
auth.switchToLinked | always | Cuentas de este dispositivo, para volver a la tuya o salir. |
bot.answerAction | always | Contesta el toque de un botón (un aviso corto, o una pregunta). |
bot.appendStream | always | Suma un trozo al mensaje que se está escribiendo. |
bot.changelog | always | Los cambios de la API que ven los bots. |
bot.commands | always | Los comandos que tiene puestos. |
bot.deleteTemplate | always | Borra una plantilla. |
bot.deleteWebhook | always | Deja de mandar las novedades a una dirección y vuelve el pedido largo. |
bot.directory | always | Los bots que eligieron salir en el directorio. |
bot.endStream | always | Termina el mensaje en vivo y ahí sale el aviso. |
bot.me | always | La cuenta del bot, sus permisos y si está en pausa. |
bot.reference | always | El hash de la foto de la API y el cambio publicado. |
bot.relation | always | Si ya le escribiste a ese bot, si lo detuviste y qué comandos tiene. |
bot.setCommands | always | Los comandos que se ven al escribir / en el chat. |
bot.setTemplate | always | Guarda un componente con huecos para rellenarlo al enviarlo. |
bot.setWebhook | always | Pone la dirección a la que Huwi manda las novedades, firmadas. |
bot.startStream | always | Empieza un mensaje que se va escribiendo. |
bot.templates | always | Las plantillas guardadas. |
bot.updates | always | Pide las novedades que todavía no confirmó. Sin webhook, puede esperar hasta 25 segundos. |
bot.webhookInfo | always | Dice si el webhook está puesto y desde cuándo está fallando. |
message.componentAction | always | Chats: leer, contestar y editar. Un bot no abre un chat ni escribe primero. |
upload.create | always | Pide una dirección para subir un archivo del bot. |
Lo que un bot nunca puede usar
Routers cerrados: activity.*, admin.*, ads.*, adsAdmin.*, adsV1.*, ageVerification.*, apiKey.*, archive.*, auth.*, autoLike.*, calls.*, copyright.*, event.*, feedback.*, library.*, loyalty.*, meet.*, moderation.*, placeAdmin.*, premium.*, profileView.*, push.*, rec.*, report.*, reviewAccount.*, roulette.*, telemetry.*.
Procedimientos cerrados dentro de routers abiertos: account.close, account.connectSocial, account.disconnectSocial, account.revokeOtherSessions, account.revokeSession, account.sessions, account.setBirthDate, bot.create, bot.mine, bot.remove, bot.requestMinors, bot.rotateKey, bot.setAccess, bot.setDirectory, bot.setGroups, bot.stop, message.addMembers, message.buzz, message.createGroup, message.invite, message.inviteLink, message.joinGroup, message.leaveGroup, message.removeMember, message.setAdmin, message.viewEphemeral, user.setPremium, user.setShowInMeet, user.showInMeet.
Entre otras cosas, un bot no puede:
- crear otros bots, ver los de su dueño ni cambiar claves (todo eso se hace con @gepeto);
- crear grupos, agregar o sacar gente, ni dejarlos (los administradores lo agregan y lo sacan);
- cerrar su cuenta, cambiar su fecha de nacimiento o conectar redes;
- usar Premium, pagos, anuncios, Ronda, Conocer o llamadas;
- usar ninguna función del equipo de Huwi: un bot siempre actúa con el rol de usuario.
En pausa
Un bot en pausa no hace nada: todos los procedimientos responden FORBIDDEN con botPaused, salvo auth.getSession, bot.me y bot.webhookInfo. No recibe novedades. bot.me dice por qué en paused:
paused | Por qué |
|---|---|
premium | Su dueño ya no tiene Premium. Vuelve solo al renovarlo. |
owner | La cuenta de su dueño se cerró. |
team | El equipo de Huwi lo pausó. |
webhook | El webhook falló (ver Webhooks). |
Menores de edad
Un bot no habla con menores de 16. De 16 a 17, solo con un bot que el equipo marcó como apto (pídelo con Apto 16-17 en @gepeto). Un grupo con menores solo admite bots aptos.
Insignias y directorio
Una cuenta con una clave vigente es una cuenta automatizada: lleva el robotcito junto al nombre en lugar de las otras insignias. Con Directorio en @gepeto, el bot sale en huwi.app/bots.