本系列代码地址 github
上一篇,我们已实现了应用的打包和上传这个流程。这一篇我们接着来实现apk上传成功后发送消息到钉钉或者企业微信这个功能。
不失一般性,我们用企业微信来实现这个功能。
企业微信提供群机器人的功能,在终端某个群组添加机器人之后,可以获取到webhook地址,然后开发者用户按以下说明构造post data向这个地址发起HTTP POST 请求,即可实现给该群组发送消息。下面举个简单的例子.具体的使用方式大家可以看官方文档。
我们现在企业微信中创建一个群,把开发人员和相关测试人员等添加到这个群里。
添加一个群机器人。企业微信如何添加群机器人
把机器人的webhook地址记录下来。
接下来我们创建发送消息的任务,代码如下:
task sendWeChatMessage(){
group "publish"
doLast{
def robotUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=bece9001-ab3e-44f2-913e-5560a9633de2"
def markdownText = """
#### 一个新的测试包已经上传
"""
def builder = new JsonBuilder({
msgtype "markdown"
markdown {
content markdownText
}
})
URL url = new URL(robotUrl)
URLConnection connection = url.openConnection()
connection.setDoInput(true)
connection.setDoOutput(true)
connection.setUseCaches(false)
connection.setRequestMethod("POST")
connection.setRequestProperty("Content-Type", "application/json")
connection.connect()
OutputStream outStream = connection.getOutputStream()
outStream.write(builder.toString().getBytes())
InputStream inStream = connection.getInputStream()
Scanner scanner = new Scanner(inStream)
while (scanner.hasNextLine()) {
println scanner.nextLine()
}
outStream.close()
inStream.close()
}
}
我们执行测试下这个任务,对应的群里会收到消息,如下:

接下来,我们就把这个任务和前面完成的流程串起来。
我们在build.gradle中添加如下代码:
uploadPgyerByApi.finalizedBy(sendWeChatMessage)
这句代码的意思是在“uploadPgyerByApi” task 执行完成后执行“sendWeChatMessage” task。
然后我们再执行“publishReleaseRelease” task,发现已经完整执行了三个步骤:
- 打包应用apk
- 上传应用到蒲公英
- 发送消息到企业微信群里,通知相关如愿
发送消息到钉钉等其他支持聊天机器人的功能是一样的,感兴趣的可以自己实现以下。
但我们现在的实现还比较粗糙,下一遍,我们还会对其进行优化。