يتطلب إطار عمل عميل Smartqq المكتوب بلغة Perl، استنادًا إلى Mojolicious، إصدار Perl 5.10+، ويمكنه توفير واجهة API تعتمد على بروتوكول HTTP من خلال المكونات الإضافية للاتصال باللغات أو الأنظمة الأخرى
يتبع هذا المشروع بشكل كامل الوظائف الأصلية التي يقدمها مسؤول QQ، ولا يتضمن أي أعمال تخريب أو سرقة حسابات، وما إلى ذلك. هذا المشروع مفتوح المصدر بالكامل والغرض منه هو تعزيز التبادلات الفنية والتعلم يحظر على الدولة والمؤسسات والأفراد وما إلى ذلك، وإلا ستكون هناك عواقب
اسم | أولوية | الوضع الحالي | مؤلف جيثب | وصف الوظيفة |
---|---|---|---|---|
ShowMsg | 100 | تم النشر | sjdy521 | طباعة الرسائل المستلمة والمرسلة من قبل العميل |
إدارة المجموعة | 100 | تم النشر | sjdy521 | إدارة المجموعة، مرحبا بكم في الانضمام إلى المجموعة، والحد من تكرار نشر الصور، وما إلى ذلك. |
آي آر سيشيل | 99 | تم النشر | sjdy521 | استخدام QQ من خلال عميل IRC في بيئة Linux |
Openqq | 98 | تم النشر | sjdy521 | يوفر واجهة API لإرسال رسائل QQ |
بيرلكود | 97 | تم النشر | sjdy521 | تنفيذ رمز بيرل من خلال رسالة QQ |
بيرلدوك | 96 | تم النشر | sjdy521 | الاستعلام عن مستندات بيرل من خلال رسائل QQ |
ترجمة | 93 | تم النشر | sjdy521 | وظيفة الترجمة متعددة اللغات |
قاعدة المعرفة | 3 | تم النشر | sjdy521 | قاعدة معرفية للأسئلة والأجوبة قابلة للتخصيص وقابلة للتحرير |
كيانداو | 1 | تم النشر | sjdy521 | تسجيل الوصول اليومي لمجموعة QQ |
PostQRcode | 0 | تم النشر | sjdy521 | قم بتسجيل الدخول إلى رمز الاستجابة السريعة وأرسله إلى بريدك الإلكتروني للمسح عن بعد. |
تحميل رمز الاستجابة السريعة | 0 | تم النشر | sjdy521 | قم بتحميل رمز الاستجابة السريعة على سرير الصورة للحصول على عنوان URL للوصول إلى الشبكة العامة |
إظهار رمز الاستجابة السريعة | 0 | تم النشر | autodataming | اتصل ببرنامج عرض صور النظام لعرض رمز الاستجابة السريعة (حاليًا يدعم الفوز فقط) |
الرد الذكي | 0 | تم النشر | sjdy521 | الرد على الدردشة الذكية |
لمزيد من المكونات الإضافية، راجع قائمة المكونات الإضافية الكاملة
ما عليك سوى كتابة أمر واحد لبدء برنامج chatbot ذكي، استمتع أنت و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端口 | |
| | >——————————————————> | |
| +--------------------+ +-------------------+ |
| |
| 我们程序实现的部分 |
+--- - - - - -- - -- ---- ------ ------- ------ --- ----+
يوصى باستخدام cpanm لتثبيت أو ترقية وحدة Mojo::Webqq عبر الإنترنت. إذا كنت تستخدم عامل الإرساء، فيرجى الاطلاع على تثبيت صورة Docker واستخدامها.
قم بتثبيت بيرل
قبل التثبيت، يرجى التأكد مما إذا كان Perl مثبتًا بالفعل على نظامك، لأنه باستثناء نظام التشغيل Windows، قد تكون معظم الأنظمة الأساسية الأخرى مثبتة مسبقًا بشكل افتراضي.
وإصدار Perl الخاص بك هو 5.10.1+ على الأقل، ويوصى بـ 5.14+
تحتوي صفحة تنزيل موقع Perl الرسمي على تعليمات تثبيت شاملة ومفصلة نسبيًا لمنصات Unix/Linux وMac OS X وWindows المتعددة.
يوصى بمحاولة اختيار إصدار الثنائيات (الثنائي المترجم مسبقًا)، والذي يمكن استخدامه مباشرة بعد التثبيت، وهو أكثر ملاءمة.
منصة | الاختيار الموصى به | عنوان التحميل |
---|---|---|
ويندوز | 1. الفراولة بيرل 2.أكتيف بيرل 3. موجو ستروبيري بيرل | عنوان تنزيل StrawberryPerl عنوان تنزيل Mojo-StrawberryPerl عنوان تنزيل ActivePerl |
لينكس | 1. يأتي مع النظام 2. مديري الحزم مثل yum/apt 3. تجميع كود المصدر الرسمي 4.أكتيف بيرل 5. دويم-بيرل | عنوان تنزيل ActivePerl عنوان تنزيل DWIM-Perl |
ماك | 1. يأتي مع النظام 2.أكتيف بيرل | عنوان تنزيل ActivePerl |
يلاحظ:
تم تبسيط Mojo-StrawberryPerl وتعبئته استنادًا إلى StrawberryPerl وهو مناسب لأنظمة Windows 32 بت/64 بت.
تثبيت أداة إدارة حزم cpanm (يمكنك تجاهل هذه الخطوة إذا كان cpanm مثبتًا بالفعل على النظام)
الطريقة أ: تثبيت cpanm عبر cpan
$ cpan -i App::cpanminus
الطريقة ب: تثبيت 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.
يرجى محاولة تثبيته واستخدامه تحت الجذر. للتثبيت والاستخدام تحت نظام غير الجذر، يرجى الرجوع إلى الأسئلة الشائعة.
إذا كنت لا تزال تواجه مشكلات، فيمكنك محاولة تنفيذ البرنامج النصي التالي على Linux للتحقق من الوحدات التابعة
$ curl -ks "https://raw.githubusercontent.com/sjdy521/Mojo-Webqq/master/script/check_dependencies.pl"|perl -
أنا على دراية بلغة Perl وأنا محترف في لغة Perl
هذا المشروع عبارة عن وحدة Perl خالصة تم إصدارها إلى cpan. يرجى قراءة وثائق الاستخدام الخاصة بوحدة 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.
أنا مهووس، أريد فقط أن أتمكن من تشغيل دردشة QQ من خلال IRC على سطر الأوامر
يرجى قراءة خطوات استخدام البرنامج الإضافي IRCShell
أنا مالك أو مسؤول مجموعة QQ وأريد إضافة وظيفة إدارة مجموعة الروبوت إلى مجموعتي.
يرجى الانتباه إلى وثائق استخدام المكون الإضافي GroupManage
جافا سكريبت
بايثون
جافا
يمكنك الرعاية عن طريق مسح رمز الاستجابة السريعة للدفع الخاص بـ Alipay. شكرًا لك على دعمك وتشجيعك.
شكر خاص لهؤلاء الأصدقاء الذين رعوا
حقوق الطبع والنشر (C) 2014 بواسطة sjdy521
هذه المكتبة عبارة عن برنامج مجاني، ويمكنك إعادة توزيعها و/أو تعديلها بموجب ترخيص BSD المكون من فقرتين "المبسطة".