El marco del cliente WeChat escrito en lenguaje Perl, basado en Mojolicious, requiere la versión 5.10+ de Perl y puede proporcionar una interfaz API basada en el protocolo HTTP a través de complementos para que otros idiomas o sistemas llamen.
Este proyecto sigue completamente las funciones originales proporcionadas oficialmente por WeChat 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. 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. |
IRCShell | 99 | Publicado | sjdy521 | Usando WeChat a través del cliente irc en un entorno Linux |
abiertowx | 98 | Publicado | sjdy521 | Proporcionar una interfaz API de envío de mensajes WeChat |
Belleza | 95 | Publicado | sjdy521 | Identifique palabras clave específicas y envíe fotografías de mujeres hermosas. |
Traducción | 93 | Publicado | sjdy521 | Función de traducción en varios idiomas |
Base de conocimientos | 2 | Publicado | sjdy521 | Personalice la base de conocimientos de preguntas y respuestas a través de mensajes de WeChat |
Verificación automática | 1 | Publicado | sjdy521 | Aprobar automáticamente al recibir una solicitud de verificación de amigo |
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 |
XiaoiceResponder | 1 | Publicado | sjdy521 | Utilice Microsoft XiaoIce para implementar respuestas de chat inteligentes |
Mostrar código QR | 0 | Publicado | sjdy521 | 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.
Simplemente escriba un solo comando para iniciar un chatbot inteligente, ¡tanto Perl como usted son muy elegantes!
cpanm Mojo::Weixin && perl -MMojo::Weixin -e "Mojo::Weixin->new->load('ShowMsg')->load('SmartReply')->run()"
[16/01/19 23:10:49] [info] 客户端准备登录...
[16/01/19 23:10:50] [info] 清除残留的历史二维码图片
[16/01/19 23:10:30] [info] 二维码已下载到本地[ /tmp/mojo_weixin_qrcode.jpg ]
[16/01/19 23:11:20] [info] 等待手机微信扫描二维码...
[16/01/19 23:12:09] [info] 手机微信扫码成功,请在手机微信上点击 [登录] 按钮...
[16/01/19 23:12:10] [info] 正在进行登录...
[16/01/19 23:12:10] [info] 微信登录成功
[16/01/19 23:13:40] [info] 获取联系人信息...
[16/01/19 23:13:40] [info] 更新个人信息成功
[16/01/19 23:14:41] [info] 更新好友信息成功
[16/01/19 23:15:42] [info] 更新群组[ 红包群 ]信息成功
[16/01/19 23:15:42] [info] 更新群组[ Perl语言交流 ]信息成功
[16/01/19 23:15:42] [info] 开始接收消息...
[16/01/19 23:15:00] [群消息] 小灰|Perl语言交流 : Mojo::Weixin不错哦
[16/01/19 23:15:58] [群消息] 我->Perl语言交流 : 多谢多谢
+-------------------+ +----------------+
| Tencent | | Any IRC Client |
| Weixin Server | | wechat、irssi |
+---v-------------^-+ +-v------------^-+
| | | |
| 微信协议交互| |IRC协议交互 |
+-- --- |-- - - -- | - - - -- - - --- | --- ----- | --+
| +---v-------------^--+ +----v------------^-+ |
| | <——————————————————< | |
| | Weixin Client | Weixin - IRC | IRC Server | |
| | | 协议转换 | 监听本机6667端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
Se recomienda utilizar cpanm para instalar el módulo Mojo::Weixin en línea. Si utiliza Docker, consulte Instalación y uso de imágenes 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.
Si su versión de Perl es inferior en Linux y desea actualizar Perl, puede considerar usar la herramienta perlbrew.
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. El sistema viene con 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. El sistema viene con 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 cpanm (puede ignorar este paso si cpanm ya está instalado en el sistema)
Método a: instalar cpanm a través de cpan (solo para usuarios root)
$ cpan -i App::cpanminus
Método b: instalar cpanm directamente en línea
$ curl -kL http://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::Weixin en línea (si el sistema ya instaló el módulo, realizar este paso actualizará el módulo)
$ cpanm Mojo::Weixin
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::Weixin
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::Weixin, 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 central de Mojo::Weixin 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::Weixin.
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-Weixin/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::Weixin
.
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 usar codificación UTF8) y usar el intérprete de Perl para ejecutarlo.
#!/usr/bin/env perl
use Mojo::Weixin;
my ($host,$port,$post_api);
$host = "0.0.0.0"; #发送消息接口监听地址,没有特殊需要请不要修改
$port = 3000; #发送消息接口监听端口,修改为自己希望监听的端口
#$post_api = 'http://xxxx'; #接收到的消息上报接口,如果不需要接收消息上报,可以删除或注释此行
my $client = Mojo::Weixin->new(log_level=>"info",http_debug=>0);
$client->load("ShowMsg");
$client->load("Openwx",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 WeChat 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:3000/openwx/send_friend_message?id=xxxx&content=hello
* About to connect() to 127.0.0.1 port 3000 (#0)
* Trying 127.0.0.1...
* Connected to 127.0.0.1 (127.0.0.1) port 3000 (#0)
> GET /openwx/send_friend_message?id=xxxxx&content=hello HTTP/1.1
> User-Agent: curl/7.29.0
> Host: 127.0.0.1:3000
> 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":"发送成功","id":23910327,"code":0}
Para obtener más descripciones de los parámetros de la interfaz, consulte la documentación de la API del complemento Openwx.
Soy un geek, solo quiero poder jugar al chat WeChat a través de IRC en la línea de comando
Lea los pasos para utilizar el complemento IRCShell
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 Licencia MIT y Licencia Anti 996;