在openshift(旧版)上运行GcmForMojo服务端

2017-02-03更新: openshift 不能开其他端口导致发消息的插件不能加载,App上登录扫码停止等事件通知好像也有问题,还是用Arukas的免费docker比较好(镜像:’rastasheep/ubuntu-sshd’,需要安装’make’以及’libssl-dev’再安装模块)

GcmForMojo 是一个微信或QQ消息推送(谷歌的FCM推送方案)APP。

简单的说是通过服务器登录发送接收到的聊天消息到谷歌服务器,接着推送到App,实现类似苹果的云推送,不用打开app也能收到消息。

由于需要服务器搭建服务端,特地买个VPS来搭服务端的话太浪费了,自己电脑啥的终究有点麻烦且不是长久之计,于是尝试了openshift发现很适合。

本教程使用Ubuntu虚拟机(之前写Windows教程发现很多麻烦问题)

写的有点罗嗦,排版也不太好,还请见谅。

注册

新注册的帐号是新的控制台,现在还不知道怎么搞
(╯-_-)╯~┴—┴

旧版往下看

添加应用及公钥

添加应用

登录Web控制台后添加应用(Add Application),找到”Perl 5.1.0”

然后这些东西都不用改直接 点创建应用(Create Application)。

添加公钥

Ubuntu终端下ssh-keygen 生成密钥对,一路回车。

打印并复制公钥

回到openshift,进入Settings,添加公钥(Add a new key),Key name随便填,下面的框填写刚才复制的公钥。

接下来就可以连接服务器了。

服务端程序

git提交程序

回到应用复制这个地址

终端下git clone <刚才的地址>

先安装两个perl模块,openshift只需要将依赖的模块名写进一个文档push的时候会自动安装。

进入.openshift目录,修改cpan.txt,添加两行。

1
2
Mojo::Weixin
Mojo::Webqq

接着写一个用以运行的perl程序(以微信为例,记得修改其中的令牌ID)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use Mojo::Weixin;

$tmpdir_dir = './';
$qrcode_path = $tmpdir_dir.'weixin.png';

my $client = Mojo::Weixin->new(
tmpdir=>$tmpdir_dir,
cookie_dir=>$tmpdir_dir,
qrcode_path=>$qrcode_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->load("ShowMsg");$client->load("GCM",data=>{
api_url => 'https://gcm-http.googleapis.com/gcm/send',
api_key=>'AIzaSyB18io0hduB_3uHxKD3XaebPCecug27ht8',
registration_ids=>["这里填写你的令牌ID(手机App显示令牌)"],
});

$client->run();

然后提交到服务器

1
2
3
git add .
git commit -m "first commit"
git push

第一次需要等一会儿,

运行程序

ssh 连接服务器(本来想action hook直接就能运行,有点问题还得老老实实自己运行)

进入目录 nohup执行刚才放进去的程序Weixin.pl(nohup执行后再按一次回车即可后台运行)

如果是第一次登录或是cookie失效,可以用浏览器访问你的应用查看二维码并扫码登录。

nohup.out 可以查看运行日志(unicode编码)

注意:cookie也可以获取到,所以不要将自己的地址暴露出去。也可以修改代码改变保存目录,太懒没去看文档。。。

至此应该是可以用了,可以和可爱的小冰聊天测试 ≧▽≦ 。

0%