Mojolicious に基づいて Perl 言語で書かれた Smartqq クライアント フレームワークには Perl バージョン 5.10 以降が必要で、他の言語またはシステムが呼び出すためのプラグインを通じて HTTP プロトコルに基づく API インターフェイスを提供できます。
このプロジェクトは、QQ 公式が提供するオリジナルの機能を完全に踏襲しており、妨害行為やアカウントの盗難などは一切含まれていません。このプロジェクトは、技術交流と学習を促進することを目的としています。国、企業、個人などは禁止されています。そうしないと、傲慢な結果が発生します。
名前 | 優先度 | 現在の状況 | ギットハブの作者 | 機能説明 |
---|---|---|---|---|
メッセージを表示 | 100 | 発行済み | sjdy521 | クライアントが送受信したメッセージを印刷する |
グループ管理 | 100 | 発行済み | sjdy521 | グループ管理、グループへの参加歓迎、写真の投稿頻度の制限など。 |
IRCシェル | 99 | 発行済み | sjdy521 | Linux 環境で irc クライアントを介して qq を使用する |
オープンqq | 98 | 発行済み | sjdy521 | QQ メッセージ送信 API インターフェースを提供する |
パールコード | 97 | 発行済み | sjdy521 | qq メッセージを通じて Perl コードを実行する |
パールドック | 96 | 発行済み | sjdy521 | qq メッセージを通じて Perl ドキュメントをクエリする |
翻訳 | 93 | 発行済み | sjdy521 | 多言語翻訳機能 |
ナレッジベース | 3 | 発行済み | sjdy521 | カスタマイズ可能で編集可能な Q&A ナレッジ ベース |
千島 | 1 | 発行済み | sjdy521 | QQ グループの毎日のチェックイン |
ポストQRコード | 0 | 発行済み | sjdy521 | QR コードにログインし、リモート スキャンのために電子メールに送信します。 |
QRコードをアップロードする | 0 | 発行済み | sjdy521 | QRコードを画像ベッドにアップロードして、パブリックネットワークアクセスURLを取得します。 |
QRコードを表示 | 0 | 発行済み | 自動データ化 | システム画像表示プログラムを呼び出してQRコードを表示します(現在Winのみ対応) |
スマートリプライ | 0 | 発行済み | sjdy521 | スマートチャット返信 |
その他のプラグインについては、完全なプラグイン リストを参照してください。
単一のコマンドを入力するだけでインテリジェントなチャットボットを開始できるので、Perl にとってもあなたにとってもエレガントです。
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端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
Mojo::Webqq モジュールをオンラインでインストールまたはアップグレードするには、cpanm を使用することをお勧めします。docker を使用する場合は、「Docker イメージのインストールと使用法」を参照してください。
Perlをインストールする
Windows を除く他のほとんどのプラットフォームにはデフォルトで Perl がプレインストールされている可能性があるため、インストールする前に、システムに Perl がすでにインストールされているかどうかを確認してください。
Perl バージョンは少なくとも 5.10.1 以降、5.14 以降を推奨します
Perl 公式 Web サイトのダウンロード ページには、Unix/Linux、Mac OS X、および Windows の複数のプラットフォーム向けの比較的包括的かつ詳細なインストール手順が含まれています。
インストール後すぐに使用できる、より便利なバイナリ(事前にコンパイルされたバイナリ) バージョンを選択することをお勧めします。
プラットフォーム | 推奨される選択肢 | ダウンロードアドレス |
---|---|---|
窓 | 1.ストロベリーパール 2.アクティブパール 3.Mojo-StrawberryPerl | StrawberryPerlのダウンロードアドレス Mojo-StrawberryPerlのダウンロードアドレス ActivePerlのダウンロードアドレス |
Linux | 1.システムに付属 2. yum/apt などのパッケージマネージャー 3. 公式ソースコードのコンパイル 4.アクティブパール 5.DWIM-Perl | ActivePerlのダウンロードアドレス DWIM-Perlのダウンロードアドレス |
マック | 1.システムに付属 2.アクティブパール | ActivePerlのダウンロードアドレス |
知らせ:
Mojo-StrawberryPerl は StrawberryPerl に基づいて合理化およびパッケージ化されており、Windows 32 ビット/64 ビット システムに適しています。
cpanm パッケージ管理ツールをインストールします(cpanm がシステムにすでにインストールされている場合は、この手順を無視できます)。
方法 a: cpan 経由で cpanm をインストールする
$ cpan -i App::cpanminus
方法 b: cpanm をオンラインで直接インストールする
$ curl -kL https://cpanmin.us | perl - App::cpanminus
官方服务器在国外,如果无法访问,可以选择下面的命令:
$ curl http://share-10066126.cos.myqcloud.com/cpanm.pl|perl - App::cpanminus
cpanm を使用して Mojo::Webqq モジュールをオンラインでインストールします(システムがすでにモジュールをインストールしている場合、この手順を実行するとモジュールがアップグレードされます)
$ cpanm Mojo::Webqq
インストール プロセス中にダウンロードが失敗したことを示すプロンプトが表示され続ける場合は、外部サーバーへのネットワーク アクセスが不十分である可能性があります。
この場合、次のように国内のミラー サイトを手動で指定してみてください。
$ cpanm --mirror http://mirrors.163.com/cpan/ Mojo::Webqq
インストールに失敗した場合に役立つ解決策
運悪く cpanm による初回インストールができなかった場合は、役立つかもしれない情報がいくつかあります。
Mojo::Webqq のインストール中に、cpan または cpanm は、他の多くの依存モジュールを自動的にインストールするのに役立ちます。
多くの依存モジュールの中で、インストールの問題が発生しやすいのは IO::Socket::SSL です。
IO::Socket::SSL は主に https サポートを提供します。インストール プロセスには、SSL 関連ライブラリのコンパイルが含まれる場合があります。
Linux ユーザーの場合、通常はコンパイルとインストールが使用されます。システムにコンパイルとインストールに必要な環境がない場合、コンパイルは失敗します。
Windows ユーザーの場合、適切なコンパイルおよびインストール環境がないため、より包括的にパッケージ化された Perl 実行環境を使用することをお勧めします。
たとえば、より一般的な Stratberryperl または activeperl の最新バージョンには、Mojo::Webqq のコア依存関係モジュールがデフォルトで含まれています。
RedHat/Centos:
$ yum install -y openssl-devel
Ubuntu:
$ sudo apt-get install libssl-dev
コンパイル環境と実行環境を修正したら、ステップ 2 に戻って Mojo::Webqq をインストールします。
root以外でのインストール・使用についてはFAQを参照してください。
それでも問題が解決しない場合は、Linux で次のスクリプトを実行して依存モジュールを確認してください。
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl -
私は Perl に精通しており、Perler のプロです
このプロジェクトは、cpan にリリースされた純粋な Perl モジュールです。Mojo Mojo::Weqq
モジュールの使用法ドキュメントをよく読んでください。
さらに、デモ ディレクトリでさらに多くのコード例をチェックアウトできます。
私は Perl には詳しくなく、他の言語の開発者なので、提供されるメッセージ送受信インターフェイスのみに興味があります。
次のコードをソース コード ファイル (UTF-8 でエンコードされている必要があります) に直接保存し、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();
上記のコードを xxxx.pl ファイルとして保存し、perl を使用して実行すると、QQ ログインが完了し、指定されたアドレス ポートをリッスンする http サーバーがローカル マシン上に生成されます。
$ perl xxxx.pl
フレンドメッセージを送信するためのインターフェース呼び出しの例
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}
インターフェイス パラメーターの詳細については、API ドキュメントを参照してください。
私はオタクです。コマンドラインで IRC を介して QQ チャットをプレイできるようにしたいだけです
IRCShell プラグインを使用する手順をお読みください。
私は QQ グループの所有者または管理者です。自分のグループにロボット グループ管理機能を追加したいと考えています。
GroupManage プラグインの使用法に関するドキュメントに注意してください。
JavaScript
パイソン
ジャワ
Alipay 決済の QR コードをスキャンしてスポンサーになることができます。ご支援とご声援をよろしくお願いいたします。
スポンサーになってくれた友人たちに特別な感謝を
著作権 (C) 2014 作成者: sjdy521
このライブラリはフリー ソフトウェアです。BSD 2 条項の「簡易」ライセンスに基づいて再配布したり、変更したりできます。