|
使用Docker构建Mojo-Webqq
基于官方dockerfile:https://github.com/sjdy521/Mojo-Webqq/blob/master/docker-image/Dockerfile
FROM centos:latest
MAINTAINER sckghost
WORKDIR /root
USER root
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN rpm --rebuilddb && yum -y --nogpgcheck install \
openssl-devel \
wget \
make \
unzip \
tar \
perl \
perl-App-cpanminus \
perl-Crypt-OpenSSL-Bignum \
perl-Crypt-OpenSSL-RSA \
perl-Compress-Raw-Zlib \
perl-IO-Compress-Gzip \
perl-Digest-MD5 \
perl-Digest-SHA \
perl-Time-Piece \
perl-Time-Seconds \
perl-Time-HiRes \
perl-IO-Socket-SSL \
perl-Encode-Locale \
perl-Term-ANSIColor
RUN yum clean all
RUN cpanm -vn Test::More Webqq::Encryption Mojolicious MIME::Lite Mojo::SMTP::Client Mojo::IRC::Server::Chinese Mojo::Webqq::Friend Mojo::Webqq::Group Mojo::Webqq::Plugin::Openqq
RUN wget -q https://github.com/sjdy521/Mojo-Webqq/archive/master.zip -OMojo-Webqq.zip \
&& unzip -qo Mojo-Webqq.zip \
&& cd Mojo-Webqq-master \
&& cpanm . \
&& cd .. \
&& rm -rf Mojo-Webqq-master Mojo-Webqq.zip
CMD perl -MMojo::Webqq -e 'Mojo::Webqq->new(log_encoding=>"utf8")->load(["ShowMsg","UploadQRcode"])->load("Openqq",data=>{listen=>[{port=>$ENV{MOJO_WEBQQ_PLUGIN_OPENQQ_PORT}//5000}],post_api=>$ENV{MOJO_WEBQQ_PLUGIN_OPENQQ_POST_API}})->run'
1、基于WebQQ协议,Mojo-Webqq,运行openqq模块。
(可选)Jenkins插件编写基础。
注意:该插件依赖Mojo-Webqq的运行,否则不能正常工作。
31行插件说明:
Mojo::Webqq::Friend 好友
Mojo::Webqq::Group 群组
Mojo::Webqq::Plugin::Openqq
提供HTTP API接口,方便获取客户端帐号、好友、群、讨论组信息,以及通过接口发送和接收好友消息、群消息、群临时消息和讨论组临时消息
完整插件请参考:https://github.com/sjdy521/Mojo-Webqq/blob/master/doc/Webqq.pod
2、使用本项目提供的Dockerfile构建Mojo-Webqq镜像
docker build -t mojo-webqq .
3、运行构建好的mojo-webqq镜像
docker run -it --env MOJO_WEBQQ_LOG_ENCODING=utf8 -p 5000:5000 -v /tmp:/tmp mojo-webqq
4、接下来扫码登录你懂得。
使用说明,需要做如下准备:
5、Api接口测试:https://github.com/sjdy521/Mojo-Webqq/blob/master/API.md
获取群组数据:
curl "http://10.17.13.49:5000/openqq/get_group_info"
获取好友数据:
curl "http://10.17.13.49:5000/openqq/get_friend_info"
6、jenkins部署成功发送QQ消息;
发送QQ群消息name=群名
curl "http://10.17.13.49:5000/openqq/send_group_message?name=xxxxxxxx&content=%e5%90%84%e4%bd%8d%e5%b0%8f%e4%bc%99%e4%bc%b4%ef%bc%8c%e6%9c%ac%e5%9c%b0devops%e6%b5%8b%e8%af%95%e7%89%88%e6%9c%ac%e9%83%a8%e7%bd%b2%e6%88%90%e5%8a%9f%ef%bc%8cURL%e5%9c%b0%e5%9d%80%ef%bc%9ahttp%3a%2f%2f10.17.13.228"
因为每次扫码登录,QQ群id和uid会变,所以使用QQ群名,群名一般固定,并urlencode转码
发送QQ好友消息
curl "http://10.17.13.49:5000/openqq/send_friend_message?id=4195367474&content=%e5%90%84%e4%bd%8d%e5%b0%8f%e4%bc%99%e4%bc%b4%ef%bc%8c%e6%9c%ac%e5%9c%b0devops%e6%b5%8b%e8%af%95%e7%89%88%e6%9c%ac%e9%83%a8%e7%bd%b2%e6%88%90%e5%8a%9f%ef%bc%8cURL%e5%9c%b0%e5%9d%80%ef%bc%9ahttp%3a%2f%2f10.17.13.228"
对好友发送消息,uid已被腾讯屏蔽,所以使用id,或者使用name(中文需要做urlencode)
也可以使用curl --data-urlencode对中文进行编码
[root@jenkins script]# curl "http://10.17.13.49:5000/openqq/send_friend_message?id=4195367474&" --data-urlencode "content=各位小伙伴,本地PC端web测试部署成功,URL地址:http://10.17.13.228"
{"code":0,"id":69750029,"info":"发送正常","status":"发送成功"}
以上URL消息 &content=后面为消息内容
同时微信端也可以推送消息
jenkins部署结果如下:
QQ群消息:
|
|
|