Mojolicious를 기반으로 Perl 언어로 작성된 Smartqq 클라이언트 프레임워크에는 Perl 버전 5.10 이상이 필요하며 다른 언어 또는 시스템 호출을 위한 플러그인을 통해 HTTP 프로토콜 기반 API 인터페이스를 제공할 수 있습니다.
이 프로젝트는 QQ 공식에서 제공하는 원래 기능을 완전히 따르며 파괴 행위, 계정 도용 등의 행위를 포함하지 않습니다. 이 프로젝트의 목적은 기술 교류 및 학습에 해로운 행위를 촉진하는 것입니다. 국가, 기업, 개인 등은 금지됩니다. 그렇지 않으면 자만심이 생길 것입니다.
이름 | 우선 사항 | 현황 | github 작성자 | 기능 설명 |
---|---|---|---|---|
메시지 표시 | 100 | 게시됨 | sjdy521 | 클라이언트가 받고 보낸 메시지를 인쇄합니다. |
그룹관리 | 100 | 게시됨 | sjdy521 | 그룹 관리, 그룹 가입 환영, 사진 게시 빈도 제한 등 |
IRC쉘 | 99 | 게시됨 | sjdy521 | Linux 환경에서 irc 클라이언트를 통해 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 | 공용 네트워크 접속 URL을 얻기 위해 QR 코드를 이미지 베드에 업로드하세요. |
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 이미지 설치 및 사용법을 참조하세요.
펄 설치
Windows를 제외한 대부분의 다른 플랫폼에는 기본적으로 Perl이 사전 설치되어 있을 수 있으므로 설치하기 전에 Perl이 시스템에 이미 설치되어 있는지 확인하십시오.
Perl 버전은 최소 5.10.1+, 5.14+가 권장됩니다.
Perl 공식 웹사이트 다운로드 페이지에는 Unix/Linux, Mac OS X 및 Windows 다중 플랫폼에 대한 비교적 포괄적이고 자세한 설치 지침이 포함되어 있습니다.
설치 후 즉시 사용할 수 있는 Binaries (바이너리 사전 컴파일) 버전을 선택하는 것이 더 편리합니다.
플랫폼 | 추천 선택 | 주소 다운로드 |
---|---|---|
윈도우 | 1. 스트로베리펄 2. 액티브펄 3. 모조-스트로베리펄 | StrawberryPerl 다운로드 주소 Mojo-StrawberryPerl 다운로드 주소 ActivePerl 다운로드 주소 |
리눅스 | 1. 시스템과 함께 제공됩니다. 2. yum/apt와 같은 패키지 관리자 3. 공식 소스코드 편집 4. 액티브펄 5. DWIM-펄 | 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 실행 환경을 사용하는 것이 좋습니다.
예를 들어, 더 널리 사용되는 Strawberryperl 또는 activeperl의 최신 버전에는 기본적으로 Mojo::Webqq의 핵심 종속성 모듈이 포함되어 있습니다.
레드햇/센토스:
$ yum install -y openssl-devel
우분투:
$ sudo apt-get install libssl-dev
컴파일 및 실행 환경을 수정한 후 2단계로 돌아가 Mojo::Webqq를 설치합니다.
루트가 아닌 사용자에게 설치 및 사용을 원하시면 FAQ를 참고하시기 바랍니다.
여전히 문제가 있는 경우 Linux에서 다음 스크립트를 실행하여 종속 모듈을 확인할 수 있습니다.
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl -
나는 Perl에 대해 매우 잘 알고 있으며 전문 Perler입니다.
이 프로젝트는 cpan에 출시된 순수 Perl 모듈입니다. 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 플러그인 사용 설명서를 주의 깊게 살펴보시기 바랍니다.
자바스크립트
파이썬
자바
알리페이 결제 QR코드를 스캔하시면 후원하실 수 있습니다. 많은 응원과 격려 부탁드립니다.
후원해주신 친구들에게 특별히 감사드립니다
저작권 (C) 2014 by sjdy521
이 라이브러리는 무료 소프트웨어입니다. BSD 2절 "단순화" 라이센스에 따라 재배포 및/또는 수정할 수 있습니다.