星期日, 八月 05, 2018

110 微信第三方安卓客户端 GcmForMojo

此文章已经过时, 目前在用的方法是自建tg机器人, 也是需要长期开机的服务器. 参见https://github.com/ehForwarderBot/ehForwarderBot

讲真微信这东西一直没什么好感, 很多功能做得像屎, 群功能, 文件功能, 聊天记录功能...
但身边的人都用, 没办法, 只能当一个办公工具.

用这个软件的几个注意事项:
*需要服务端. 最好是有个常年开着的服务器. 不然意义不大.
*服务器最好有独立IP, 如果没有, 消息只能看不能发.
*服务端基于网页微信
*只显示文字消息, 图片/语音/视频不支持显示, 但会才存在服务端.
*服务端主程序基于Perl语言, 所以支持Windows和Linux.
*需要脑子和动手能力
下载地址: Coolapk酷市场

发几张截图:
这是我的Windows服务端↓:
截图已删除

客户端微信公众号↓可以直接发起会话:
截图已删除

客户端好友↓可以直接发起会话:
截图已删除
客户端微信公众号发起会话聊天窗口↓

私聊来消息的悬浮窗, 以及回复↓:


可以从刚才提到的coolapk酷市场直接下载Windows服务端. 解压之后用记事本打开mojo_weixin.pl文件, 下图有几个注意点, 我标红了:
#!/usr/bin/env perl
use Mojo::Weixin;
my ($host,$port,$post_api);
$log = 0          ;#是否记录日志,1为显示,0为不显示
##### 以下无需修改 #####
$host = "0.0.0.0"; #发送消息接口监听地址
$port = 1082;        #发送消息接口监听端口
#$post_api = 'http://127.0.0.1/txpush.php';  #接收消息上报接口,如不需要可删除此行
$tmpdir_dir = './temp/'; #这里可以像我这样使用专门的temp目录来存放视频/音频/图片, 一次缓存的cookies信息. 原版默认是没有的, 挂的时间长了软件根目录下一堆文件, 很不好清理, 所以我就加了一个. 记得在服务端根目录新建一个temp文件夹
$qrcode_path = $tmpdir_dir.'weixin.png'; #服务端第一次启动的时候要用你自己的手机扫码登录, 这个是二维码的下载路径.
if($log == '1'){
$log_path ="";
}else{
$log_path = "/dev/null";
}
my $client = Mojo::Weixin->new(
tmpdir=>$tmpdir_dir,
cookie_dir=>$tmpdir_dir,
qrcode_path=>$qrcode_path,
log_path=>$log_path
);
print "Logining...\nIf No Succeed Info in 5s Please Scan QRCode\n";
$client->on(login=>sub{
    print "\nLogin Succeed\n";
});
$client->on(ready=>sub{
    print "WebWeiXin OK\n";
    unlink($qrcode_path);
});
$client->on(before_send_message=>sub{
    my($client,$msg) = @_;
    $client->stop() if $msg->content eq "!stop!";
    return;
});
$client->load("ShowMsg");
$client->load("ShowQRcode");
$client->load("Openwx",data=>{listen=>[{host=>$host,port=>$port}], post_api=>$post_api});
$client->load("ShowMsg");
#下面四种分别是谷歌推送、小米推送、华为推送和魅族推送,根据自己的需要选择,不需要的推送可以注释或者删除
#$client->load("GCM",data=>{
#    api_url => 'https://gcm-http.googleapis.com/gcm/send',
#    api_key=>'AIzaSyB18io0hduB_3uHxKD3XaebPCecug27ht8',
#    registration_ids=>["输入你自己的令牌"],
#    allow_group=>["群名称","群名称"],
#    ban_group=>[],
# is_ban_official =>1, #是否禁止推送公众号消息,默认禁止
#});  
$client->load("MiPush",data=>{  #我用的是小米推送
    registration_ids=>["这里填写安卓客户端生成的令牌"],
    allow_group=>[],
    ban_group=>[],
is_ban_official =>0, #是否禁止推送公众号消息,默认禁止
});
#$client->load("HwPush",data=>{
#    registration_ids=>["输入你自己的令牌"],
#    allow_group=>["群名称","群名称"],
#    ban_group=>[],
# is_ban_official =>1, #是否禁止推送公众号消息,默认禁止
#});
#$client->load("FmPush",data=>{
#    registration_ids=>["输入你自己的令牌"],
#    allow_group=>["群名称","群名称"],
#    ban_group=>[],
# is_ban_official =>1, #是否禁止推送公众号消息,默认禁止
#});
$client->run();
不知道为什么, 我的小米手机不能收到系统级推送的消息(类似于苹果手机的那种无后台推送), 可能是我精简的系统组件太多了...另外服务端客户端也支持收发QQ消息(基于网页版的SmartQQ)
总之这个东西折腾起来要有耐心. 设置确实挺复杂的, 服务器如果是阿里云腾讯云的话, 还要去开放那两个监听端口...但是折腾好了的话就不用把微信的垃圾客户端放在后台运行啦, 哈哈.
博客附件提供服务端1.3.2和客户端1.7.4. 是发本文时的最新版本.

0 条评论: