Skip to content
Esta página fue generada y traducida con asistencia de IA. Si encuentra alguna imprecisión, no dude en ayudar a mejorarla. Editar en GitHub

QQ ​

Conecta PRX a QQ usando el Bot API oficial con soporte para mensajes privados, chats grupales, guilds y adjuntos multimedia.

Requisitos previos ​

  • Una cuenta de QQ (personal o empresarial)
  • Una aplicacion de bot registrada en la QQ Open Platform
  • Un App ID y App Secret de la consola de desarrollador
  • El bot debe estar aprobado y publicado (modo sandbox disponible para pruebas)

Configuracion rapida ​

1. Crear un bot de QQ ​

  1. Ve a la QQ Open Platform e inicia sesion con tu cuenta de QQ
  2. Navega a "Applications" y crea una nueva aplicacion de bot
  3. Rellena el nombre del bot, descripcion y avatar
  4. Bajo "Development Settings", copia el App ID y App Secret
  5. Configura los intents del bot (tipos de mensaje que el bot debe recibir)
  6. Para pruebas, habilita el modo sandbox que limita el bot a un guild de prueba designado

2. Configurar ​

Agrega lo siguiente a tu archivo de configuracion de PRX:

toml
[channels_config.qq]
app_id = "102012345"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = ["user_openid_1", "user_openid_2"]
sandbox = true

Establece sandbox = false una vez que el bot haya sido aprobado para uso en produccion.

3. Verificar ​

bash
prx channel doctor qq

Referencia de configuracion ​

CampoTipoPor defectoDescripcion
app_idStringrequeridoID de aplicacion de la consola de desarrollador de QQ Open Platform
app_secretStringrequeridoSecreto de aplicacion de la consola de desarrollador
allowed_users[String][]OpenIDs de usuario permitidos. Vacio = modo emparejamiento. "*" = permitir todos
sandboxboolfalseCuando es true, conectar al gateway sandbox para pruebas
intents[String]["guilds", "guild_messages", "direct_messages"]Intents de eventos a suscribir
stream_modeString"none"Modo streaming: "none" o "typing". El modo typing envia un indicador de escritura mientras genera
interrupt_on_new_messageboolfalseCuando es true, un nuevo mensaje del mismo remitente cancela la solicitud en curso
mention_onlyboolfalseCuando es true, solo responder a @menciones en canales de grupo o guild. Los DMs siempre se procesan
ack_reactionsboolheredadoSobreescritura para el ajuste global ack_reactions. Recurre a [channels_config].ack_reactions si no esta establecido

Como funciona ​

PRX se conecta al Bot API de QQ usando un flujo de eventos basado en WebSocket. El ciclo de vida de la conexion es:

  1. Autenticacion -- PRX obtiene un token de acceso usando el App ID y App Secret via credenciales de cliente OAuth2
  2. Descubrimiento de gateway -- el bot solicita la URL del gateway WebSocket a la API de QQ
  3. Establecimiento de sesion -- se abre una conexion WebSocket al gateway con el token de acceso
  4. Suscripcion de intents -- el bot declara que tipos de eventos quiere recibir
  5. Bucle de eventos -- los mensajes entrantes se despachan al bucle del agente PRX; las respuestas se envian via la API REST
QQ Gateway (WSS) ──► PRX Channel Handler ──► Agent Loop
                                                │
QQ REST API ◄───── Reply with message ◄────────┘

Caracteristicas ​

  • Mensajeria de guild y grupo -- responde a mensajes en guilds (canales) y chats grupales de QQ
  • Mensajes directos -- maneja conversaciones privadas 1:1 con usuarios
  • Modo de emparejamiento -- vinculacion segura con codigo de un solo uso cuando no hay usuarios permitidos configurados
  • Adjuntos multimedia -- soporta envio y recepcion de imagenes, archivos y tarjetas multimedia enriquecidas
  • Respuestas Markdown -- los bots de QQ soportan un subconjunto de formato Markdown en respuestas
  • Reacciones de confirmacion -- reacciona a mensajes entrantes para confirmar recepcion cuando esta habilitado
  • Modo sandbox -- prueba el bot en un entorno de guild aislado antes del despliegue en produccion
  • Renovacion automatica de token -- los tokens de acceso se renuevan automaticamente antes de expirar
  • Multiplataforma -- funciona en QQ desktop, movil y QQ para Linux

Tipos de mensaje ​

El Bot API de QQ soporta varios tipos de contenido de mensaje:

TipoDireccionDescripcion
TextoEnviar / RecibirMensajes de texto plano, hasta 2,048 caracteres
MarkdownEnviarTexto formateado con el subconjunto Markdown de QQ
ImagenEnviar / RecibirAdjuntos de imagen (JPEG, PNG, GIF)
ArchivoRecibirAdjuntos de archivos de usuarios
Embed enriquecidoEnviarMensajes de tarjeta estructurados con titulo, descripcion y miniatura
Plantilla ArkEnviarMensajes enriquecidos basados en plantillas usando el sistema Ark de QQ

Intents ​

Los intents controlan que eventos recibe el bot. Intents disponibles:

IntentEventosNotas
guildsCreacion, actualizacion, eliminacion de guildCambios de metadatos de guild
guild_membersAgregar, actualizar, eliminar miembroRequiere permisos elevados
guild_messagesMensajes en canales de texto de guildIntent mas comun
guild_message_reactionsAgregar/eliminar reacciones en guildsReacciones emoji
direct_messagesDMs privados con el botSiempre recomendado
group_and_c2cChats grupales y mensajes C2CRequiere aprobacion separada
interactionClics en botones e interaccionesPara componentes de mensaje interactivos

Limitaciones ​

  • El Bot API de QQ tiene restriccion regional; los bots estan disponibles principalmente en China continental
  • El modo sandbox limita el bot a un unico guild de prueba con un numero pequeno de miembros
  • Los bots de produccion requieren aprobacion del equipo de revision de QQ Open Platform
  • El chat grupal y la mensajeria C2C requieren una solicitud de permiso separada
  • Las subidas de archivos estan limitadas a 20 MB por adjunto
  • La moderacion de contenido es aplicada por QQ; los mensajes con contenido prohibido se descartan silenciosamente
  • Se aplican limites de velocidad: aproximadamente 5 mensajes por segundo por guild, 2 por segundo para DMs
  • El bot no puede iniciar conversaciones; los usuarios o administradores deben agregar al bot primero

Solucion de problemas ​

El bot no se conecta al gateway de QQ ​

  • Verifica que app_id y app_secret son correctos con prx channel doctor qq
  • Si usas modo sandbox, asegurate de que sandbox = true esta establecido (sandbox y produccion usan gateways diferentes)
  • Comprueba que las conexiones salientes a api.sgroup.qq.com y el gateway WebSocket no estan bloqueadas

El bot se conecta pero no recibe mensajes ​

  • Verifica que los intents correctos estan configurados para tu caso de uso
  • En canales de guild, el bot puede necesitar que un admin del guild le otorgue el permiso "Receive Messages"
  • Comprueba que el OpenID del usuario remitente esta en allowed_users, o establece allowed_users = ["*"]

Las respuestas no se entregan ​

  • QQ aplica moderacion de contenido; revisa los logs de PRX para respuestas de rechazo de la API
  • Asegurate de que el bot tiene el permiso "Send Messages" en el guild o grupo objetivo
  • Para respuestas DM, el usuario debe haber enviado un mensaje al bot primero para abrir la conversacion

Fallos de renovacion de token ​

  • El App Secret puede haber sido rotado en la consola de desarrollador; actualiza la configuracion con el nuevo secreto
  • Los problemas de red pueden prevenir la renovacion de token; verifica la conectividad a bots.qq.com

Paginas relacionadas ​

Released under the Apache-2.0 License.