El marco de cliente Smartqq escrito en lenguaje Perl, basado en Mojolicious, requiere Perl versión 5.10+ y puede proporcionar una interfaz API basada en el protocolo HTTP a través de complementos para que otros lenguajes o sistemas llamen
Este proyecto sigue completamente las funciones originales proporcionadas por el funcionario de QQ y no incluye ningún acto de sabotaje, robo de cuentas, etc. Este proyecto es completamente de código abierto y tiene como objetivo promover el intercambio técnico y el aprendizaje. el país, empresas, individuos, etc. está prohibido, de lo contrario habrá consecuencias engreídas.
nombre | prioridad | Estado actual | autor de github | Descripción de la función |
---|---|---|---|---|
Mostrar mensaje | 100 | Publicado | sjdy521 | Imprimir mensajes recibidos y enviados por el cliente. |
Administrar grupo | 100 | Publicado | sjdy521 | Gestión de grupos, bienvenido a unirse al grupo, limitar la frecuencia de publicación de imágenes, etc. |
IRCShell | 99 | Publicado | sjdy521 | Usando qq a través del cliente irc en entorno Linux |
abrirqq | 98 | Publicado | sjdy521 | Proporcionar interfaz API de envío de mensajes QQ |
código perl | 97 | Publicado | sjdy521 | Ejecutar código perl a través del mensaje qq |
Perldoc | 96 | Publicado | sjdy521 | Consultar documentos perl a través de mensajes qq. |
Traducción | 93 | Publicado | sjdy521 | Función de traducción en varios idiomas |
Base de conocimientos | 3 | Publicado | sjdy521 | Base de conocimientos de preguntas y respuestas editable y personalizable |
Qiandao | 1 | Publicado | sjdy521 | Check-in diario del grupo QQ |
Publicar código QR | 0 | Publicado | sjdy521 | Inicie sesión con el código QR y envíelo a su correo electrónico para escanearlo de forma remota. |
Subircódigo QR | 0 | Publicado | sjdy521 | Sube el código QR a la base de imágenes para obtener la URL de acceso a la red pública |
Mostrar código QR | 0 | Publicado | datos automáticos | Llame al programa de visualización de imágenes del sistema para mostrar el código QR (actualmente solo admite win) |
Respuesta inteligente | 0 | Publicado | sjdy521 | Respuesta de chat inteligente |
Para obtener más complementos, consulte la lista completa de complementos.
Puede iniciar un chatbot inteligente escribiendo un solo comando, muy elegante tanto para Perl como para usted.
cpanm Mojo::Webqq && perl -MMojo::Webqq -e "Mojo::Webqq->new->load('ShowMsg')->load('SmartReply')->run()"
[15/09/30 15:11:59] [info] 初始化 smartqq 客户端参数...
[15/09/30 15:11:59] [info] 检查验证码...
[15/09/30 15:11:59] [info] 检查结果: 很幸运,本次登录不需要验证码
[15/09/30 15:11:59] [info] 正在获取登录二维码...
[15/09/30 15:11:59] [info] 二维码已下载到本地[ /tmp/mojo_webqq_qrcode_xxx.png ]
[15/09/30 15:12:00] [info] 登录二维码已经发送到邮箱: ******
[15/09/30 15:12:00] [info] 等待手机QQ扫描二维码...
[15/09/30 15:12:43] [info] 手机QQ扫码成功,请在手机上点击[允许登录smartQQ]按钮...
[15/09/30 15:12:46] [info] 检查安全代码...
[15/09/30 15:12:47] [info] 设置登录验证参数...
[15/09/30 15:12:47] [info] 尝试进行登录(2)...
[15/09/30 15:12:47] [info] 登录成功
[15/09/30 15:12:47] [info] 更新个人信息...
[15/09/30 15:12:47] [info] 更新好友信息...
[15/09/30 15:12:47] [info] 更新[ PERL学习交流 ]信息
[15/09/30 15:12:52] [info] 更新[ Mojolicious ]信息
[15/09/30 15:12:55] [info] 开始接收消息...
[15/09/30 14:09:20] [群消息] 小灰|PERL学习交流 : Mojo::Webqq不错哦
[15/09/30 14:10:20] [群消息] 我->PERL学习交流 : 多谢多谢
+-------------------+ +----------------+
| Tencent | | Any IRC Client |
| SmartQQ Server | | wechat、irssi |
+---v-------------^-+ +-v------------^-+
| | | |
| QQ协议交互 | |IRC协议交互 |
+-- --- |-- - - -- | - - - -- - - --- | --- ----- | --+
| +---v-------------^--+ +----v------------^-+ |
| | <——————————————————< | |
| | SmartQQ Client | QQ - IRC | IRC Server | |
| | | 协议转换 | 监听本机6667端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
Se recomienda utilizar cpanm para instalar o actualizar el módulo Mojo::Webqq en línea. Si utiliza Docker, consulte Instalación y uso de la imagen de Docker.
Instalar Perl
Antes de la instalación, confirme si Perl ya está instalado en su sistema, porque, excepto Windows, la mayoría de las demás plataformas pueden tenerlo preinstalado de forma predeterminada.
Y su versión de Perl es al menos 5.10.1+, se recomienda 5.14+
La página de descarga del sitio web oficial de Perl contiene instrucciones de instalación relativamente completas y detalladas para múltiples plataformas Unix/Linux, Mac OS X y Windows.
Se recomienda que intente elegir la versión Binaries (binarios precompilados), que se puede utilizar inmediatamente después de la instalación, lo cual es más conveniente.
plataforma | Elección recomendada | Descargar dirección |
---|---|---|
ventanas | 1. Perl de fresa 2.Perl activo 3. Mojo-StrawberryPerl | Dirección de descarga de StrawberryPerl Dirección de descarga de Mojo-StrawberryPerl Dirección de descarga de ActivePerl |
linux | 1. Viene con el sistema 2. Gestores de paquetes como yum/apt 3. Compilación del código fuente oficial. 4.Perl activo 5. DWIM-Perl | Dirección de descarga de ActivePerl Dirección de descarga de DWIM-Perl |
Impermeable | 1. Viene con el sistema 2.Perl activo | Dirección de descarga de ActivePerl |
Aviso:
Mojo-StrawberryPerl está optimizado y empaquetado en base a StrawberryPerl y es adecuado para sistemas Windows de 32 y 64 bits.
Instale la herramienta de administración de paquetes cpanm (puede ignorar este paso si cpanm ya está instalado en el sistema)
Método a: instalar cpanm a través de cpan
$ cpan -i App::cpanminus
Método b: instalar cpanm directamente en línea
$ curl -kL https://cpanmin.us | perl - App::cpanminus
官方服务器在国外,如果无法访问,可以选择下面的命令:
$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus
Utilice cpanm para instalar el módulo Mojo::Webqq en línea (si el sistema ya ha instalado el módulo, realizar este paso actualizará el módulo)
$ cpanm Mojo::Webqq
Si sigue indicando que la descarga falló durante el proceso de instalación, probablemente se deba a que el acceso de red al servidor externo es deficiente.
En este caso, puede intentar especificar manualmente el sitio espejo nacional de la siguiente manera:
$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq
Soluciones fallidas en la instalación que pueden ayudar
Si no tiene suerte y no puede realizar la instalación por primera vez a través de cpanm, aquí encontrará información que podría resultarle útil.
Durante la instalación de Mojo::Webqq, cpan o cpanm nos ayudarán a instalar automáticamente muchos otros módulos dependientes
Entre los muchos módulos dependientes, el que suele ser propenso a tener problemas de instalación es IO::Socket::SSL.
IO::Socket::SSL proporciona principalmente soporte https. El proceso de instalación puede implicar la compilación de bibliotecas relacionadas con SSL.
Para los usuarios de Linux, generalmente se usa la compilación y la instalación. Si el sistema carece del entorno necesario para la compilación y la instalación, la compilación fallará.
Para los usuarios de Windows, dado que no existe un buen entorno de compilación e instalación, se recomienda utilizar algunos entornos de ejecución de Perl que se hayan empaquetado de manera más completa.
Por ejemplo, las últimas versiones de los más populares Strawberryperl o activeperl incluyen el módulo de dependencia principal de Mojo::Webqq de forma predeterminada.
RedHat/Centos:
$ yum install -y openssl-devel
Ubuntu:
$ sudo apt-get install libssl-dev
Después de arreglar el entorno de compilación y ejecución, regrese al paso 2 e instale Mojo::Webqq.
Intente instalarlo y usarlo como root. Para instalarlo y usarlo como no root, consulte las preguntas frecuentes.
Si aún tiene problemas, puede intentar ejecutar el siguiente script en Linux para verificar los módulos dependientes
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl -
Estoy muy familiarizado con Perl y soy un Perler profesional.
Este proyecto es un módulo Perl puro que se ha publicado en cpan. Lea atentamente la documentación de uso Mojo::Weqq
.
Además, puede consultar más ejemplos de código en el directorio de demostración.
No estoy familiarizado con Perl y soy desarrollador de otros lenguajes. Solo me interesa la interfaz de envío/recepción de mensajes proporcionada.
Puede guardar directamente el siguiente código en un archivo de código fuente (debe estar codificado en UTF-8) y ejecutarlo utilizando el intérprete de Perl.
#!/usr/bin/env perl
use Mojo::Webqq;
my ($host,$port,$post_api);
$host = "0.0.0.0"; #发送消息接口监听地址,没有特殊需要请不要修改
$port = 5000; #发送消息接口监听端口,修改为自己希望监听的端口
#$post_api = 'http://xxxx'; #接收到的消息上报接口,如果不需要接收消息上报,可以删除或注释此行
my $client = Mojo::Webqq->new();
$client->load("ShowMsg");
$client->load("Openqq",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});
$client->run();
Guarde el código anterior como un archivo xxxx.pl y luego use perl para ejecutarlo. Se completará el inicio de sesión de QQ y se generará un servidor http que escuche el puerto de dirección especificado en la máquina local.
$ perl xxxx.pl
Ejemplo de llamada de interfaz para enviar mensajes a amigos
http://127.0.0.1:5000/openqq/send_friend_message?uid=xxxxx&content=hello
* About to connect() to 127.0.0.1 port 5000 (#0)
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 5000 (#0)
> GET /openqq/send_friend_message?uid==xxxxx&content=hello HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 127.0.0.1:5000
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json;charset=UTF-8
< Date: Sun, 13 Dec 2015 04:54:38 GMT
< Content-Length: 52
< Server: Mojolicious (Perl)
<
* Connection #0 to host 127.0.0.1 left intact
{"status":"发送成功","msg_id":23910327,"code":0}
Para obtener más descripciones de los parámetros de la interfaz, consulte la documentación de la API.
Soy un geek, sólo quiero poder jugar al chat QQ a través de IRC en la línea de comando.
Lea los pasos para utilizar el complemento IRCShell
Soy propietario o administrador de un grupo QQ. Quiero agregar una función de administración de grupos de robots a mi grupo.
Preste atención a la documentación de uso del complemento GroupManage.
javascript
Pitón
Java
Puede patrocinar escaneando el código QR de pago de Alipay. Gracias por su apoyo y aliento.
Un agradecimiento especial a aquellos amigos que han patrocinado
Copyright (C) 2014 por sjdy521
Esta biblioteca es software gratuito; puede redistribuirla y/o modificarla bajo una licencia BSD "simplificada" de 2 cláusulas.