Le framework client Smartqq écrit en langage Perl, basé sur Mojolicious, nécessite Perl version 5.10+ et peut fournir une interface API basée sur le protocole HTTP via des plug-ins pour que d'autres langages ou systèmes puissent appeler
Ce projet suit entièrement les fonctions originales fournies par QQ officiel, et n'inclut aucun acte de sabotage, vol de compte, etc. Ce projet est entièrement open source. Le but est de favoriser les échanges techniques et l'apprentissage de toute utilisation illégale préjudiciable. le pays, les entreprises, les particuliers, etc. sont interdits, sinon il y aura des conséquences vaniteuses.
nom | priorité | Statut actuel | auteur github | Description de la fonction |
---|---|---|---|---|
AfficherMsg | 100 | Publié | sjdy521 | Imprimer les messages reçus et envoyés par le client |
GroupeGérer | 100 | Publié | sjdy521 | Gestion du groupe, bienvenue dans le groupe, limiter la fréquence de publication des photos, etc. |
IRCShell | 99 | Publié | sjdy521 | Utilisation de qq via le client irc dans un environnement Linux |
Ouvrirqq | 98 | Publié | sjdy521 | Fournit une interface API d'envoi de messages QQ |
Code Perl | 97 | Publié | sjdy521 | Exécuter le code Perl via le message qq |
Perldoc | 96 | Publié | sjdy521 | Interroger des documents Perl via des messages QQ |
Traduction | 93 | Publié | sjdy521 | Fonction de traduction multilingue |
Base de connaissances | 3 | Publié | sjdy521 | Base de connaissances Q&R modifiable et personnalisable |
Qiandao | 1 | Publié | sjdy521 | Enregistrement quotidien du groupe QQ |
Code QR postal | 0 | Publié | sjdy521 | Connectez-vous au code QR et envoyez-le à votre adresse e-mail pour une numérisation à distance. |
TéléchargerQRcode | 0 | Publié | sjdy521 | Téléchargez le code QR sur le lit d'images pour obtenir l'URL d'accès au réseau public |
Afficher le QRcode | 0 | Publié | datamation automatique | Appelez le programme de visualisation d'image système pour afficher le code QR (actuellement, ne prend en charge que Win) |
Réponse intelligente | 0 | Publié | sjdy521 | Réponse par chat intelligent |
Pour plus de plug-ins, reportez-vous à la liste complète des plug-ins
Tapez simplement une seule commande pour démarrer un chatbot intelligent, Perl et vous êtes si élégants.
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端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
Il est recommandé d'utiliser cpanm pour installer ou mettre à niveau le module Mojo::Webqq en ligne. Si vous utilisez Docker, veuillez consulter Installation et utilisation de l'image Docker.
Installer Perl
Avant l'installation, veuillez confirmer si Perl est déjà installé sur votre système, car à l'exception de Windows, la plupart des autres plates-formes peuvent l'avoir préinstallé par défaut.
Et votre version de Perl est au moins 5.10.1+, 5.14+ est recommandée
La page de téléchargement du site Web officiel de Perl contient des instructions d'installation relativement complètes et détaillées pour plusieurs plates-formes Unix/Linux, Mac OS X et Windows.
Il est recommandé d'essayer de choisir la version Binaires (binaire précompilé), qui peut être utilisée immédiatement après l'installation, ce qui est plus pratique.
plate-forme | Choix recommandé | Adresse de téléchargement |
---|---|---|
Fenêtres | 1. FraisePerl 2. ActivePerl 3. Mojo-FraisePerl | Adresse de téléchargement de StrawberryPerl Adresse de téléchargement de Mojo-StrawberryPerl Adresse de téléchargement ActivePerl |
Linux | 1. Livré avec le système 2. Gestionnaires de packages tels que yum/apt 3. Compilation officielle du code source 4. ActivePerl 5. DWIM-Perl | Adresse de téléchargement ActivePerl Adresse de téléchargement DWIM-Perl |
Mac | 1. Livré avec le système 2. ActivePerl | Adresse de téléchargement ActivePerl |
Avis:
Mojo-StrawberryPerl est rationalisé et packagé sur la base de StrawberryPerl et convient aux systèmes Windows 32 bits/64 bits.
Installez l'outil de gestion de packages cpanm (vous pouvez ignorer cette étape si cpanm est déjà installé sur le système)
Méthode a : installer cpanm via cpan
$ cpan -i App::cpanminus
Méthode b : Installer cpanm directement en ligne
$ curl -kL https://cpanmin.us | perl - App::cpanminus
官方服务器在国外,如果无法访问,可以选择下面的命令:
$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus
Utilisez cpanm pour installer le module Mojo::Webqq en ligne (si le système a déjà installé le module, effectuer cette étape mettra à niveau le module)
$ cpanm Mojo::Webqq
S'il continue de vous indiquer que le téléchargement a échoué pendant le processus d'installation, c'est probablement parce que l'accès réseau au serveur étranger est médiocre.
Dans ce cas, vous pouvez essayer de spécifier manuellement le site miroir national comme suit :
$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq
Solutions ayant échoué lors de l'installation et pouvant aider
Si vous n'avez pas de chance et que vous n'obtenez pas une première installation via cpanm, voici quelques informations qui pourraient être utiles
Lors de l'installation de Mojo::Webqq, cpan ou cpanm nous aidera à installer automatiquement de nombreux autres modules dépendants
Parmi les nombreux modules dépendants, celui qui est souvent sujet à des problèmes d'installation est IO::Socket::SSL.
IO::Socket::SSL fournit principalement un support https. Le processus d'installation peut impliquer la compilation de bibliothèques liées à SSL.
Pour les utilisateurs Linux, la compilation et l'installation sont généralement utilisées. Si le système ne dispose pas de l'environnement nécessaire pour la compilation et l'installation, la compilation échouera.
Pour les utilisateurs Windows, puisqu'il n'existe pas de bon environnement de compilation et d'installation, il est recommandé d'utiliser certains environnements d'exécution Perl qui ont été packagés de manière plus complète.
Par exemple, les dernières versions des plus populaires Strawberryperl ou ActivePerl incluent par défaut le module de dépendance principal de Mojo::Webqq.
RedHat/Centos :
$ yum install -y openssl-devel
Ubuntu :
$ sudo apt-get install libssl-dev
Après avoir corrigé l'environnement de compilation et d'exécution, revenez à l'étape 2 et installez Mojo :: Webqq.
Veuillez essayer de l'installer et de l'utiliser sous root. Pour l'installation et l'utilisation sous un utilisateur non root, veuillez vous référer à la FAQ.
Si vous rencontrez toujours des problèmes, vous pouvez essayer d'exécuter le script suivant sous Linux pour vérifier les modules dépendants
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl -
Je connais très bien Perl et je suis un Perler professionnel
Ce projet est un module Perl pur qui a été publié sur cpan. Veuillez lire attentivement la documentation d'utilisation Mojo::Weqq
.
De plus, vous pouvez consulter plus d'exemples de code dans le répertoire de démonstration
Je ne connais pas Perl et je suis développeur d'autres langages. Je ne m'intéresse qu'à l'interface d'envoi/réception de messages fournie.
Vous pouvez directement enregistrer le code suivant dans un fichier de code source (doit être encodé en UTF-8) et utiliser l'interpréteur Perl pour l'exécuter
#!/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();
Enregistrez le code ci-dessus en tant que fichier xxxx.pl, puis utilisez Perl pour l'exécuter. La connexion QQ sera terminée et un serveur http écoutant le port d'adresse spécifié sera généré sur la machine locale.
$ perl xxxx.pl
Exemple d'appel d'interface pour envoyer des messages à des amis
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}
Pour plus de descriptions des paramètres d'interface, veuillez vous référer à la documentation de l'API.
Je suis un geek, je veux juste pouvoir jouer au chat QQ via IRC sur la ligne de commande
Veuillez lire les étapes pour utiliser le plug-in IRCShell
Je suis propriétaire ou administrateur d'un groupe QQ. Je souhaite ajouter une fonction de gestion de groupe de robots à mon groupe.
Veuillez prêter attention à la documentation d'utilisation du plug-in GroupManage.
Javascript
Python
Java
Vous pouvez parrainer en scannant le code QR de paiement Alipay. Merci pour votre soutien et vos encouragements.
Un merci spécial aux amis qui ont parrainé
Copyright (C) 2014 par sjdy521
Cette bibliothèque est un logiciel libre ; vous pouvez la redistribuer et/ou la modifier sous licence BSD 2 clauses « Simplifiée ».