Das in der Perl-Sprache geschriebene Smartqq-Client-Framework, das auf Mojolicious basiert, erfordert Perl-Version 5.10+ und kann über Plug-Ins eine API-Schnittstelle basierend auf dem HTTP-Protokoll bereitstellen, die von anderen Sprachen oder Systemen aufgerufen werden kann
Dieses Projekt folgt vollständig den ursprünglichen Funktionen von QQ und beinhaltet keine Sabotage, Kontodiebstahl usw. Dieses Projekt ist vollständig Open Source. Der Zweck besteht darin, den technischen Austausch und das Lernen zu fördern Das Land, Unternehmen, Einzelpersonen usw. sind verboten, sonst gibt es eingebildete Konsequenzen
Name | Priorität | Aktueller Stand | Github-Autor | Funktionsbeschreibung |
---|---|---|---|---|
Nachricht anzeigen | 100 | Veröffentlicht | sjdy521 | Vom Client empfangene und gesendete Nachrichten drucken |
GroupManage | 100 | Veröffentlicht | sjdy521 | Gruppenverwaltung, willkommen, der Gruppe beizutreten, die Häufigkeit der Veröffentlichung von Bildern usw. begrenzen. |
IRCShell | 99 | Veröffentlicht | sjdy521 | Verwendung von qq über den IRC-Client in einer Linux-Umgebung |
Openqq | 98 | Veröffentlicht | sjdy521 | Stellt eine API-Schnittstelle zum Senden von QQ-Nachrichten bereit |
Perlcode | 97 | Veröffentlicht | sjdy521 | Führen Sie Perl-Code über die QQ-Nachricht aus |
Perldoc | 96 | Veröffentlicht | sjdy521 | Fragen Sie Perl-Dokumente über QQ-Nachrichten ab |
Übersetzung | 93 | Veröffentlicht | sjdy521 | Mehrsprachige Übersetzungsfunktion |
Wissensdatenbank | 3 | Veröffentlicht | sjdy521 | Anpassbare, bearbeitbare Wissensdatenbank mit Fragen und Antworten |
Qiandao | 1 | Veröffentlicht | sjdy521 | Täglicher Check-in für die QQ-Gruppe |
PostQRcode | 0 | Veröffentlicht | sjdy521 | Melden Sie sich mit dem QR-Code an und senden Sie ihn zum Remote-Scannen an Ihre E-Mail. |
QRcode hochladen | 0 | Veröffentlicht | sjdy521 | Laden Sie den QR-Code in das Bildbett hoch, um die Zugriffs-URL für das öffentliche Netzwerk zu erhalten |
QRcode anzeigen | 0 | Veröffentlicht | Autodataming | Rufen Sie das Systembildanzeigeprogramm auf, um den QR-Code anzuzeigen (unterstützt derzeit nur Win). |
SmartReply | 0 | Veröffentlicht | sjdy521 | Intelligente Chat-Antwort |
Weitere Plug-Ins finden Sie in der vollständigen Plug-In-Liste
Geben Sie einfach einen einzigen Befehl ein, um einen intelligenten Chatbot zu starten. Sowohl Perl als auch Sie sind so elegant.
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端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
Es wird empfohlen, cpanm zu verwenden, um das Mojo::Webqq-Modul online zu installieren oder zu aktualisieren. Wenn Sie Docker verwenden, lesen Sie bitte die Informationen zur Docker-Image-Installation und -Nutzung.
Installieren Sie Perl
Bitte überprüfen Sie vor der Installation, ob Perl bereits auf Ihrem System installiert ist, da es mit Ausnahme von Windows auf den meisten anderen Plattformen standardmäßig vorinstalliert sein kann.
Und Ihre Perl-Version ist mindestens 5.10.1+, 5.14+ wird empfohlen
Die Downloadseite der offiziellen Perl-Website enthält relativ umfassende und detaillierte Installationsanweisungen für mehrere Plattformen wie Unix/Linux, Mac OS X und Windows.
Es wird empfohlen, dass Sie versuchen, die Binärversion (vorkompilierte Binärversion) auszuwählen, die direkt nach der Installation verwendet werden kann, was bequemer ist.
Plattform | Empfohlene Wahl | Adresse herunterladen |
---|---|---|
Windows | 1. Erdbeerperle 2. ActivePerl 3. Mojo-StrawberryPerl | StrawberryPerl-Downloadadresse Mojo-StrawberryPerl-Downloadadresse ActivePerl-Downloadadresse |
Linux | 1. Wird mit dem System geliefert 2. Paketmanager wie yum/apt 3. Offizielle Quellcode-Zusammenstellung 4. ActivePerl 5. DWIM-Perl | ActivePerl-Downloadadresse DWIM-Perl-Downloadadresse |
Mac | 1. Wird mit dem System geliefert 2. ActivePerl | ActivePerl-Downloadadresse |
Beachten:
Mojo-StrawberryPerl ist auf Basis von StrawberryPerl optimiert und verpackt und eignet sich für Windows 32-Bit-/64-Bit-Systeme.
Installieren Sie das Paketverwaltungstool cpanm (Sie können diesen Schritt ignorieren, wenn cpanm bereits auf dem System installiert ist).
Methode a: Installieren Sie cpanm über cpan
$ cpan -i App::cpanminus
Methode B: Installieren Sie cpanm direkt online
$ curl -kL https://cpanmin.us | perl - App::cpanminus
官方服务器在国外,如果无法访问,可以选择下面的命令:
$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus
Verwenden Sie cpanm, um das Mojo::Webqq-Modul online zu installieren (wenn das System das Modul bereits installiert hat, wird das Modul durch Ausführen dieses Schritts aktualisiert).
$ cpanm Mojo::Webqq
Wenn während des Installationsvorgangs immer wieder die Meldung angezeigt wird, dass der Download fehlgeschlagen ist, liegt das wahrscheinlich daran, dass der Netzwerkzugriff auf den fremden Server schlecht ist.
In diesem Fall können Sie versuchen, die inländische Spiegelseite wie folgt manuell anzugeben:
$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq
Lösungen, die bei der Installation fehlgeschlagen sind und möglicherweise hilfreich sind
Wenn Sie Pech haben und keine Erstinstallation über cpanm erhalten, finden Sie hier einige Informationen, die hilfreich sein könnten
Während der Installation von Mojo::Webqq helfen uns cpan oder cpanm dabei, viele andere abhängige Module automatisch zu installieren
Unter den vielen abhängigen Modulen ist IO::Socket::SSL häufig anfällig für Installationsprobleme.
IO::Socket::SSL bietet hauptsächlich https-Unterstützung. Der Installationsprozess umfasst möglicherweise die Kompilierung von SSL-bezogenen Bibliotheken.
Für Linux-Benutzer werden normalerweise Kompilierung und Installation verwendet. Wenn dem System die erforderliche Umgebung für die Kompilierung und Installation fehlt, schlägt die Kompilierung fehl.
Für Windows-Benutzer wird empfohlen, einige Perl-Laufumgebungen zu verwenden, die umfassender gepackt sind, da es keine gute Kompilierungs- und Installationsumgebung gibt.
Beispielsweise enthalten die neuesten Versionen des populäreren Strawberryperl oder Activeperl standardmäßig das Kernabhängigkeitsmodul von Mojo::Webqq.
RedHat/Centos:
$ yum install -y openssl-devel
Ubuntu:
$ sudo apt-get install libssl-dev
Nachdem Sie die Kompilierungs- und Ausführungsumgebung repariert haben, kehren Sie zu Schritt 2 zurück und installieren Sie Mojo::Webqq.
Bitte versuchen Sie, es unter Root zu installieren und zu verwenden. Informationen zur Installation und Verwendung unter Nicht-Root finden Sie in den FAQ.
Wenn weiterhin Probleme auftreten, können Sie versuchen, das folgende Skript unter Linux auszuführen, um abhängige Module zu überprüfen
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl -
Ich kenne mich sehr gut mit Perl aus und bin ein professioneller Perler
Bei diesem Projekt handelt es sich um ein reines Perl-Modul, das für cpan freigegeben wurde. Bitte lesen Sie die Nutzungsdokumentation Mojo::Weqq
-Moduls sorgfältig durch.
Darüber hinaus können Sie sich im Demo-Verzeichnis weitere Codebeispiele ansehen
Ich bin mit Perl nicht vertraut und bin Entwickler anderer Sprachen. Mich interessiert nur die bereitgestellte Schnittstelle zum Senden/Empfangen von Nachrichten.
Sie können den folgenden Code direkt in einer Quellcodedatei speichern (muss UTF-8-codiert sein) und ihn mit dem Perl-Interpreter ausführen
#!/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();
Speichern Sie den obigen Code als xxxx.pl-Datei und führen Sie ihn dann mit Perl aus. Die QQ-Anmeldung wird abgeschlossen und auf dem lokalen Computer wird ein HTTP-Server generiert, der den angegebenen Adressport überwacht.
$ perl xxxx.pl
Beispiel eines Schnittstellenaufrufs zum Senden von Freundschaftsnachrichten
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}
Weitere Beschreibungen der Schnittstellenparameter finden Sie in der API-Dokumentation.
Ich bin ein Geek, ich möchte nur in der Lage sein, QQ-Chat über IRC auf der Befehlszeile zu spielen
Bitte lesen Sie die Schritte zur Verwendung des IRCShell-Plug-Ins
Ich bin Besitzer oder Administrator einer QQ-Gruppe und möchte meiner Gruppe eine Robotergruppenverwaltungsfunktion hinzufügen.
Bitte beachten Sie die Nutzungsdokumentation zum GroupManage-Plug-in
JavaScript
Python
Java
Sie können eine Patenschaft übernehmen, indem Sie den Alipay-Zahlungs-QR-Code scannen. Vielen Dank für Ihre Unterstützung und Ermutigung.
Besonderer Dank geht an die Freunde, die gesponsert haben
Copyright (C) 2014 von sjdy521
Bei dieser Bibliothek handelt es sich um freie Software; Sie können sie unter der BSD-2-Klausel „Simplified“-Lizenz weiterverbreiten und/oder modifizieren