A estrutura do cliente Smartqq escrita em linguagem Perl, baseada em Mojolicious, requer Perl versão 5.10+ e pode fornecer uma interface API baseada em protocolo HTTP por meio de plug-ins para outras linguagens ou sistemas chamarem
Este projeto segue integralmente as funções originais fornecidas pelo QQ oficial e não inclui quaisquer atos de sabotagem, roubo de conta, etc. Este projeto é totalmente de código aberto. O objetivo é promover o intercâmbio técnico e o aprendizado. o país, empresas, indivíduos, etc. é proibido, caso contrário, haverá consequências pretensiosas.
nome | prioridade | Estado atual | autor do github | Descrição da função |
---|---|---|---|---|
Mostrar mensagem | 100 | Publicado | sjdy521 | Imprimir mensagens recebidas e enviadas pelo cliente |
Gerenciamento de grupo | 100 | Publicado | sjdy521 | Gerenciamento de grupo, bem-vindo ao grupo, limite a frequência de postagem de fotos, etc. |
IRCShell | 99 | Publicado | sjdy521 | Usando qq através do cliente irc em ambiente Linux |
Openqq | 98 | Publicado | sjdy521 | Fornece interface API de envio de mensagens QQ |
Perlcode | 97 | Publicado | sjdy521 | Execute o código perl através da mensagem qq |
Perldoc | 96 | Publicado | sjdy521 | Consultar documentos perl através de mensagens qq |
Tradução | 93 | Publicado | sjdy521 | Função de tradução multilíngue |
Base de Conhecimento | 3 | Publicado | sjdy521 | Base de conhecimento de perguntas e respostas editável e personalizável |
Qiandao | 1 | Publicado | sjdy521 | Check-in diário do grupo QQ |
PósQRcode | 0 | Publicado | sjdy521 | Faça login no código QR e envie-o para seu e-mail para digitalização remota. |
Carregar QRcode | 0 | Publicado | sjdy521 | Carregue o código QR na base de imagens para obter o URL de acesso à rede pública |
Mostrar código QR | 0 | Publicado | datação automática | Chame o programa de visualização de imagens do sistema para exibir o código QR (atualmente suporta apenas win) |
Resposta inteligente | 0 | Publicado | sjdy521 | Resposta de bate-papo inteligente |
Para mais plug-ins, consulte a lista completa de plug-ins
Basta digitar um único comando para iniciar um chatbot inteligente, tanto Perl quanto você são tão elegantes.
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端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
Recomenda-se usar cpanm para instalar ou atualizar o módulo Mojo::Webqq online. Se você usar o docker, consulte Instalação e uso da imagem do Docker.
Instalar perl
Antes da instalação, confirme se o Perl já está instalado em seu sistema, pois exceto o Windows, a maioria das outras plataformas podem tê-lo pré-instalado por padrão.
E sua versão Perl é pelo menos 5.10.1+, 5.14+ é recomendado
A página de download do site oficial do Perl contém instruções de instalação relativamente abrangentes e detalhadas para múltiplas plataformas Unix/Linux, Mac OS X e Windows.
Recomenda-se que você tente escolher a versão Binários (binários pré-compilados), que pode ser utilizada imediatamente após a instalação, o que é mais conveniente.
plataforma | Escolha recomendada | Endereço de download |
---|---|---|
Windows | 1. Morango Perl 2. ActivePerl 3. Mojo-MorangoPerl | Endereço de download do StrawberryPerl Endereço de download Mojo-StrawberryPerl Endereço de download do ActivePerl |
Linux | 1. Vem com o sistema 2. Gerenciadores de pacotes como yum/apt 3. Compilação oficial do código-fonte 4. ActivePerl 5. DWIM-Perl | Endereço de download do ActivePerl Endereço de download DWIM-Perl |
Mac | 1. Vem com o sistema 2. ActivePerl | Endereço de download do ActivePerl |
Perceber:
Mojo-StrawberryPerl é simplificado e empacotado com base em StrawberryPerl e é adequado para sistemas Windows de 32/64 bits.
Instale a ferramenta de gerenciamento de pacotes cpanm (você pode ignorar esta etapa se o cpanm já estiver instalado no sistema)
Método a: Instale o cpanm via cpan
$ cpan -i App::cpanminus
Método b: Instale o cpanm diretamente online
$ curl -kL https://cpanmin.us | perl - App::cpanminus
官方服务器在国外,如果无法访问,可以选择下面的命令:
$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus
Use cpanm para instalar o módulo Mojo::Webqq online (se o sistema já tiver instalado o módulo, executar esta etapa atualizará o módulo)
$ cpanm Mojo::Webqq
Se continuar avisando que o download falhou durante o processo de instalação, provavelmente é porque o acesso da rede ao servidor externo é ruim.
Nesse caso, você pode tentar especificar manualmente o site espelho doméstico da seguinte maneira:
$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq
Soluções com falha na instalação que podem ajudar
Se você não tiver sorte e não conseguir uma instalação inicial via cpanm, aqui estão algumas informações que podem ser úteis
Durante a instalação do Mojo::Webqq, cpan ou cpanm nos ajudará a instalar automaticamente muitos outros módulos dependentes
Entre os muitos módulos dependentes, aquele que costuma estar sujeito a problemas de instalação é IO::Socket::SSL.
IO::Socket::SSL fornece principalmente suporte a https. O processo de instalação pode envolver a compilação de bibliotecas relacionadas a SSL.
Para usuários do Linux, geralmente são usadas compilação e instalação. Se o sistema não tiver o ambiente necessário para compilação e instalação, a compilação falhará.
Para usuários do Windows, como não existe um bom ambiente de compilação e instalação, é recomendado usar alguns ambientes de execução Perl que foram empacotados de forma mais abrangente.
Por exemplo, as versões mais recentes do mais popular StrawberryPerl ou ActivePerl incluem o módulo de dependência principal do Mojo::Webqq por padrão.
RedHat/Centos:
$ yum install -y openssl-devel
Ubuntu:
$ sudo apt-get install libssl-dev
Depois de corrigir o ambiente de compilação e execução, volte para a etapa 2 e instale o Mojo::Webqq.
Por favor, tente instalar e usá-lo como root. Para instalação e uso sem root, consulte o FAQ.
Se ainda tiver problemas, você pode tentar executar o seguinte script no Linux para verificar os módulos dependentes
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl -
Estou muito familiarizado com Perl e sou um Perler profissional
Este projeto é um módulo Perl puro que foi lançado para cpan. Leia atentamente a documentação de uso do módulo Mojo::Weqq
.
Além disso, você pode conferir mais exemplos de código no diretório demo
Não estou familiarizado com Perl e sou desenvolvedor de outras linguagens. Estou interessado apenas na interface de envio/recebimento de mensagens fornecida.
Você pode salvar diretamente o código a seguir em um arquivo de código-fonte (deve ser codificado em UTF-8) e usar o interpretador perl para executá-lo
#!/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();
Salve o código acima como um arquivo xxxx.pl e, em seguida, use perl para executá-lo. O login QQ será concluído e um servidor http escutando a porta de endereço especificada será gerado na máquina local.
$ perl xxxx.pl
Exemplo de chamada de interface para envio de mensagens de 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 obter mais descrições de parâmetros de interface, consulte a documentação da API.
Eu sou um geek, só quero poder jogar QQ chat através do IRC na linha de comando
Leia as etapas para usar o plug-in IRCShell
Sou proprietário ou administrador de um grupo QQ e desejo adicionar uma função de gerenciamento de grupo de robôs ao meu grupo.
Preste atenção à documentação de uso do plug-in GroupManage
JavaScript
Pitão
Java
Você pode patrocinar digitalizando o código QR de pagamento Alipay. Obrigado por seu apoio e incentivo.
Agradecimentos especiais aos amigos que patrocinaram
Direitos autorais (C) 2014 por sjdy521
Esta biblioteca é um software livre; você pode redistribuí-la e/ou modificá-la sob a licença "Simplificada" de 2 cláusulas do BSD.