使用Docker构建Mojo-Webqq
基于官方dockerfile:https://github.com/sjdy521/Mojo-Webqq/blob/master/docker-image/Dockerfile

FROM centos:latest
MAINTAINER sckghost <sckghost@163.com>
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的运行,否则不能正常工作。
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"

jenkins部署完通过mojo-webqq推送消息

jenkins部署完通过mojo-webqq推送消息

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部署结果如下:
jenkins部署完通过mojo-webqq推送消息

QQ群消息:
jenkins部署完通过mojo-webqq推送消息