IT之家学院:借助第三方应用实现免登录接收QQ/微信通知

  • 时间:
  • 浏览:2

感谢IT之家男友 WalkMan77 的原创投稿

PS:需用一台服务器配合使用,国内外的服务器皆可,(服务器可用不关机的PC代替,网络满足条件即可,下方有提供Windows环境配置的地址,被委托人未测试,故本文不作介绍)。使用FCM/GCM通道需用两个都都可不都还可以访问Google,最好能7*24在线的机器;使用MiPush/HwPush/MzPush通道国内外服务器皆可,通常国内的服务器会延迟低某些。

前天偶然在酷安看完两个叫做GcmForMojo的应用,软件很小,越来越多余权限,借助它需用通过系统推送服务实现在不打开QQ及微信的状况下接收消息,无需常驻后台,昨天被委托人试用了一下感觉很棒,把教程给亲戚亲戚亲戚亲戚朋友挂接分享一下附加某些使用心得。

(一) GcmForMojo在酷安的介绍

这是两个GCM/小米/华为/魅族推送消息接受守护进程池池,需用将令牌写入服务端配合Mojo-Webqq和Mojo-Weixin共同使用。

将QQ和微信的消息通过FCM/GCM/MiPush/HwPush/MzPush推送到你的手机。

建议华为手机使用华为推送(可单独安装华为移动服务共享通道)、Miui系统使用MiPush、魅族Flyme使用MzPush时,使用写轮眼禁用某些的后台推送服务。

(二)原文地址

GcmForMojo(酷安):点击这里

GcmForMojo(GitHub):点击这里

Mojo-Webqq:点击这里

Mojo-Weixin:点击这里

Windows环境:点击这里

Linux环境教程:点击这里

Linux一键安装脚本:点击这里

Openshift服务端安装教程:点击这里

盐的介绍与教程:点击这里

FCM for Mojo(GitHub):点击这里

FCM for Mojo & Mojo-WebQQ:点击这里

(三)某些说明

1、被委托人的服务器为Vultr日本服务器,2.5刀套餐,PC上安装Putty进行管理,系统为CentOS 7(原文为CentOS 6.8),某些Linux发行版请自行修改对应命令;手机为Android 7.1.2,已安装谷歌服务,确定使用GCM。鉴于我的实际状况,本文介绍均基于你某种环境进行配置,Windows环境未测试不作介绍。

2、需用使用阿里云、腾讯云这类的国内服务器,毕竟好多好多 都是都都可不都还可以免费试用一段时间的,学生套餐也足够便宜,需用拿来当一下小白鼠尝尝鲜,据说刚刚 国内的网络环境,连接SS服务器刚刚 会被停机,亲戚亲戚亲戚亲戚朋友自行斟酌。

3、确定使用GCM/FCM获取设备码需用用科学上网,刚刚 会愿因分析获取失败,GcmForMojo重装或更换设备会使设备码发生变化,需用在服务器端修改为相应的设备码,配置成功后断开科学上网的连接后测试仍然需用收到相应的消息。

4、该方案按照被委托人的理解是在服务器端安装两个对应的软件,实现这类在PC网页版登录的效果,刚刚 通过服务器把消息发送给手机端,刚刚 功能受限于官方为网页版提供的功能,在GitHub的项目蕴含所体现,在微信端配置成功后体现的尤为明显,这时登录微信客户端会两个微信网页版已登录的提示,刚刚 两个验证码确认登录也需用理解了。

5、刚刚 昨天在配置的刚刚越来越考虑到会写你某种文章,刚刚 越来越完整性的过程截图,只能尽量完整性说明。代码片段刚刚 编辑器的支持什么的问题暂由截图代替,什么代码片段在文末有链接供下载,使用时找到对应的片段复制粘贴即可。第一次写你某种,刚刚 会略啰嗦,望见谅~下面进入正题,先介绍手动安装的土法律法律依据 ,再介绍一键安装的土法律法律依据 。

(四) QQ

1、首先安装依存关系

刚刚 亲戚亲戚亲戚亲戚朋友需用Mojo::WebQQ你某种Perl语言项目作为主机端接收QQ消息的平台,共同CentOS自带yum源越来越Cpanm包管理,好多好多 接下来需用安装Cpanm:

刚刚 亲戚亲戚亲戚亲戚朋友是第一次使用Cpan,守护进程池池会要求亲戚亲戚亲戚亲戚朋友进行最基础的设定,一路回车即可,直到你看完:

从不惊慌,这是Cpan要求你设定两个Cpan仓库源,到这里(http://www.cpan.org/SITES.html)找两个就需用,国内的主机需用去China列寻找,确定两个镜像服务器节点离你最近的地方,墙外的服务器需用直接用主站(http://www.cpan.org/)作为镜像源。

Cpanm安装完毕后,亲戚亲戚亲戚亲戚朋友就需用安装Mojo::WebQQ了,Mojo-WebQQ升级也是同样的命令,非root用户需用加带–sudo参数:

刚刚 你是国内的主机,一般状况下下载速率单位会非常慢刚刚 完整性无法安装,这刚刚想要越来越 做:

刚刚 再次再次出现了安装错误,一般状况下是Mojolicious未成功安装造成的,这刚刚你需用手动安装:

成功安装Mojolicious刚刚再次执行:

或:

应该就需用成功安装了,

Mojo::Weixin的安装土法律法律依据 大致相同。

2.设定

Mojo::WebQQ安装完毕后,就需用开始英语 英文进行设定了

首先亲戚亲戚亲戚亲戚朋友需用新建两个Perl脚本文件来执行(要共同配置QQ及微信的建议对GCM.pl文件名称进行自定义命名方便操作,如qqGCM.pl、wxGCM.pl):

亲戚亲戚亲戚亲戚朋友使用vim对文件进行操作:

点击i进入编辑模式,

刚刚 有人还都是熟透悉vim的使用土法律法律依据 ,这里简单介绍一下会用到的功能:

这里给出两个Perl脚本文件的模板,具体内容请根据实际状况替换更改:

保存退出,

按ESC退出编辑模式,输入:wq进行保存并退出。

安装GCMForMojo安卓客户端软件,确定对应的推送通道,打开推送开关,输入服务端地址,如http://XXX.XXX.XXX.XXX:11500,其中XXX累积为服务器地址,11500为Openqq累积被委托人设定的端口号,被委托人可做相应的修改,其它根据被委托人的需用进行确定,

执行:

这刚刚你的GCMForMojo APP应该会弹出一根检测到二维码事件的通知,点击它,使用手机端QQ扫描你某种二维码,你的GCMForMojo就跑起来了。

3.注意事项

Perl守护进程池池从无需后台运行!!!共同刚刚 你的SSH连接中断励志的话 当前终端下运行的完整性会话均会被杀死,若想保持后台运行且断掉SSH连接后依旧可正常工作,请使用screen命令:

刚刚 请按Ctrl A,再按D键使此screen进入后台驻守,刚刚 就需用中断SSH连接了,刚刚 需用恢复此screen励志的话 ,请执行:

刚刚 你有共同运行Mojo-Webqq与Mojo-Weixin的需求,在守护进程池池驻守后台后就需用按照上述土法律法律依据 运行越来越 客户端了,恢复screen总要共同再次再次出现你某种个客户端的守护进程池池,在docker前加入显示的相应数字即可,即如screen -r 1234.docker形式。

刚刚 你越来越能在/storage/emulated/0/gcmformojo/里找到下载的二维码图片或接收到GCMForMojo的二维码事件通知,越来越很刚刚 你的Mojo::WebQQ版本过旧,刚刚 需用升级Mojo::WebQQ励志的话 ,有某种 土法律法律依据 :

从Cpanm仓库更新:

从Git仓库源编译安装升级:

刚刚更新时:

Mojo::Weixin的更新土法律法律依据 这类,请自行替换相应字符串,

刚刚 再执行:

应该就需用看完二维码图片或接收到通知了。

(五)微信

配置设定步骤与QQ基本相同,将Webqq字样替换为Weixin即可。需用注意的是微信二维码无法直接通过调用相册中的二维码进行识别,需用将GCMForMojo中的二维码链接发送至PC端用浏览器打开进行扫描识别。详见第九累积的第两个什么的问题。

(六)提升安全性

刚刚 OpenQQ组件使用HTTP请求而都是更安全的HTTPS请求,越来越 会很容易被他人监听,并有刚刚 以你的身份发送消息,好多好多 为了安全起见,强烈建议以加盐或开启HTTPS加密的土法律法律依据 增强安全性,供对信息安全有要求的使用,未使用的请勿在公共的开放网络发送敏感信息,正确处理信息的泄露。具体愿因分析解释如下:

众所周知随便说说GcmForMojo的回复功能是基于Mojo::Webqq/Mojo::Weixin中的OpenQQ插件的数据传送默认通过HTTP完成,

官方示例代码如下:

刚刚 就越来越 配置励志的话 很容易就会想到什么的问题:

1、OpenQQ插件使用的是HTTP协议,愿因分析刚刚 有数据被监听的风险,

尤其像现在免费WiFi盛行通过HTTP传送极易被窃取回息(数据未被加密);

2、刚刚 两个攻击者知道了OpenQQ的IP和所开放的端口,

越来越不就需用冒充用户的身份向别人发送消息了么(未验证客户端身份);

正确处理土法律法律依据 :

针对什么的问题一,使用HTTPS而从不HTTP传送消息,对信息进行加密。

在Mojo::WebQQ的文档中官方给出了OpenQQ在HTTPS下工作的配置代码:

刚刚 Webqq是在Mojo的基础上开发的,刚刚 只好多好多 Mojo支持的HTTPS加密土法律法律依据 则均可使用,打开pl文件,把越来越 的listen一行删除再贴上如上代码,刚刚 把tls_ca,tls_cert和tls_key的值改成被委托人的证书文件所在的路径。

原文作者在配置的刚刚只指定了tls_cert和tls_key你某种个参数,tls_ca应该是不需用配置的,需用直接注释掉。

不过有两点需用注意:

1、需用注册两个被委托人的域名。毕竟HTTPS证书是和域名挂钩的,需用申请两个域名并绑定在你的推送服务器上,刚刚 你是无法签发可被信任的证书的。

2、需用购买HTTPS证书,也需用使用Let's Encrypt你某种免费的证书签发机构的证书,可信赖度不像刚刚StartSSL越来越差,除了两个月需用续签一次以外越来越什么大什么的问题,签发和续期证书的步骤网上有好多好多 ,自行搜索一下就好。按理来说刚刚 是被委托人生成的证书假使 在客户端信任该证书也可使用,据说确定了自签发证书会更麻烦。

刚刚 一切都配置完毕且确认越来越什么的问题,请将GcmForMojo中服务端地址里的http改成https即可。

针对什么的问题二,服务端与客户端共同配置盐值。

OpenQQ插件中的auth参数好多好多 用来正确处理接口被盗用的什么的问题

该正确处理方案原理如下(参考了支付宝付款接口对于参数的验证操作):

在服务端与客户端配置好相同的盐值,当客户端向服务端发起请求时(比如客户端要给某人发送消息),客户端会将各个参数按照参数名的字母表顺序升序排列并依次把几块参数串起来,再将盐值追加其后进行md5摘要操作,把md5后得到的hash存中放新的参数sign里发往服务端(盐值无需跟着发往服务端),服务端会同样遵循客户端的步骤将各个参数与存储在服务端上的盐值连接md5,刚刚再将md5后得到的hash与sign进行比较,一致则表示服务端与客户端盐值相同即表示通过,服务端会继续执行客户端要求的操作,刚刚 不一致则拒绝操作,达到正确处理盗用接口的目的。

通过原理不难 看出该方案要求服务端和客户端都是配置好,在新版GcmForMojo刚刚 加带了回复校验功能,现在要做的好多好多 配置服务端。

打开pl文件,定位到OpenQQ段代码,修改auth参数(越来越auth你某种行就自行加带),代码如下:

刚刚 还有人不理解盐值是什么,说通俗点吧需用与否个密码,用来验证你是都是你某种QQ号主人的密码,越来越刚刚 你问你某种盐值哪里来呢?盐值就像密码想要随便编,假使 保证两端盐值相同即可,刚刚 为了安全考虑我还是推荐生成随机密码。比如在你某种网站上都是随机密码生成器,随机生成两个后把服务端代码里的secret变量里面的值改成刚刚生成的密码(看注释即可),再把该密码填入GcmForMojo的“输入盐值”里即可。

此外需用在pl文件的开头加带一行代码(刚刚 已加就无需管它):

不加这行代码运行的过总要报错。

加盐后效果如下:

以下略。

刚刚 把HTTPS和回复校验完整性配置的好励志的话 代码离米 是你某种样子:

越来越 子基本上就刚刚 保证消息的安全性了,大功告成~(๑•̀ㅂ•́)و✧

(七)一键安装

1、安装curl和screen工具,根据系统自行确定:

# RedHat / CentOS

# Debian / Ubuntu

2、创建两个UTF-8模式的窗口:

3、下载和运行一键安装脚本:

接下去根据提示确定需用安装的模块,Mojo-Webqq与Mojo-Weixin单独安装或共同安装皆可。你只需用提供手机的设备码,记住模块对应的端口号即可,QQ的默认端口号为11500,微信默认端口号为1150,可自行修改。

说明:

webqq_default_config.pl文件为Mojo-Webqq的配置文件,对应上文示例中的GCM.pl文件,weixin_default_config.pl文件则为Mojo-Weixin的配置文件,使用土法律法律依据 同上。增强安全性,进行加盐及https传输正确处理的土法律法律依据 见第六累积。

(八)附

我的Mojo-Webqq及Mojo-Weixin的配置代码(GCM传输,仅做加盐正确处理,未设定https传输,请自行加带设备码及盐值)。

Mojo-Webqq:点击这里

Mojo-Weixin:点击这里

(九)某些什么的问题

1、微信二维码无法识别的什么的问题。刚刚 微信的限制,现在在手机端直接从相册识别验证的二维码会再次再次出现无法识别,提示升级的软件的最新版,需用通过将GCMForMojo中的二维码链接发送至电脑端,用浏览器打开,再用手机端的微信对电脑浏览器中的二维码进行识别即可,刚刚 验证的二维码有时间限制,时间到了还未验证成功就会自动更换验证码,这刚刚就要重新发送至电脑端进行验证,默认二维码更换次数为10次,需用修改服务器端的配置文件提升次数的上限;

2、微信登录失败的什么的问题。刚刚 再次再次出现手机端二维码验证成功,服务器端登陆成功后随即取回的状况,这类于下图:

需用多尝试登录几块,刚刚 过一段时间再尝试下看看有越来越恢复,我除了在第一次登录的刚刚有碰到过之外,某些都登录正常,刚刚 当时越来越截图,只能在issues中找了一张近似的截图.....

3、微信多账户登录。需用通过修改cookie路径实现,正确处理冲突,详见:

https://github.com/sjdy521/Mojo-Webqq/issues/97

https://metacpan.org/pod/distribution/Mojo-Weixin/doc/Weixin.pod#new-初始化两个微信客户端对象;

你某种什么的问题的正确处理土法律法律依据 刚刚 我只两个微信账号不难 测试,贴出来应该对有多个微信账号的亲戚亲戚亲戚朋友有用。

4、项目在GitHub的提问区的地址:

里面我只列举了几块我在使用过程中碰到的什么的问题,下面附上GitHub提问区地址,里面有使用者在使用过程中碰到的某些什么的问题及作者的解答,里面都是中文用户,亲戚亲戚亲戚亲戚朋友无需担心看不懂。

Mojo-Weixin:点击这里

Mojo-Webqq:点击这里

代码片段下载链接:点击这里

更多使用土法律法律依据 请参考GitHub中项目的官方说明及开发文档,加带插件需用增加更多功能。

感谢每一位在国内越来越特殊的Android生态下尽刚刚 帮助亲戚亲戚亲戚亲戚朋友获得更佳体验的开发者。

附上Mojo-Weixin及Mojo-Webqq作者sjdy521的GitHub地址:点击这里