使用Gradle和Kotlin重写一下之前 钉钉通知服务器 顺便再熟悉下服务端基本编写操作
clone项目后,请在项目根目录下创建 src/main/webapp/config.properties
并设置如下属性值,以便获取钉钉相关参数
# 必填,企业在钉钉中的标识,每个企业拥有一个唯一的CorpID
corpid=dingaa******c2f4657eb6378f
# 必填,企业每个应用的凭证密钥
corpsecret=Bp1_HoQej2s******LE7aRWaJm_lYpSMYvVQi-_Q
# 必填,钉钉微应用id
agentId=123456
# 可选,gitlab默认通知审核的人员或者gira默认通知的bug归属人的真实名字,用于匹配钉钉通讯录获取userId
# 同时也是蒲公英上传应用后回调通知的默认用户
defaultNoticeUserName="张三"
# 可选,jira 详情面板网址前缀(带斜杠),其后添加jira bugId接口拼接成完整地址,若无请放空
jira_borwse_url=http://jira.soundbus.tech/browse/
# gitlab合并的目标分支是该分支时, 此hook请求才需要发送钉钉消息,不填的话,默认master
gitlab_push_merge_branch=master
#---IM-Telegram 配置---
# 用于接收消息的默认bot token
tg_bot_token=9749123470:abced
# 默认接收消息的tg用户username
tg_user_name=helobotxxx
在通讯录root部门中添加所有人,以便发送消息到特定用户时可以从root部门中查询得到用户id; 根据gitlab项目路径配置各项目部门,比如:
- gitlab项目地址为: https://gitlab.lynxz.org/demo-android/detail-android
则表示项目名称(
name
) 为:detail-android
,项目所在空间(namespace
)为:demo-android
- 在钉钉后台通讯录中需要先创建部门:
demo_android
,然后创建其子部门detail_android
注意: 由于钉钉部门名称不允许使用-
,因此创建时改为_
替代 - 目前只支持两级部门结构,若有多个部门符合上述规则gitlab merge通过时会通知所有匹配的部门成员;
{serverHost}/action/refreshToken
重新刷新access_token,并重新获取通讯录{serverHost}/action/updateDepartmentInfo
请求该url会立即重新获取钉钉通讯录信息,用于用户更新了钉钉通讯录后主动触发服务器刷新数据{serverHost}/action/save_data?**=**
可以将 query 数据保存到文件中 如: 1.1.1.1:8080/server-V0.1.4/action/updateDepartmentInfo{serverHost}/action/send_msg
post 请求,发送消息给钉钉指定的人员或者部门
curl -d "{\"name\":\"\",\"mobile\":\"\",\"content\":\"消息内容\",\"departmentName\":\"部门名称\"}" {serverHost}/action/send_msg
{serverHost}/action/send_msg
post 请求,发送消息给钉tg指定用户
curl -d "{\"name\":\"目标用户userName\",\"imType\":\"Telegram\",\"content\":\"消息内容\",\"tgBotToken\":\"tg bot token\"}" {serverHost}/action/send_msg
name: 发送钉钉消息时可空,钉钉用户姓名或者备注名, 发送tg消息时必填,为用户昵称或者userName
content: 必填,要发送的消息
mobile: 可空, 钉钉用户手机号,优先匹配
imType: 可空,用于发送的IM类型,目前支持两种: Telegram 和 DingDing, 默认为 DingDing
departmentName: 发送钉钉消息时必填,为用户所在部门名称
tgBotToken: 用于接收消息的tg机器人token,默认值为 config.properties
中 tg_bot_token
服务端会查询 departmentName
部门下的 手机号和名称相符的用户, 若查得到,则发消息给他
否则,发送消息给该部门所有人
- 在tg中,
@BotFather
-/newbot
-输入任意名称说明
-输入以 _bot 结尾的名称
-成功,得到token
- 将上述得到的botToken信息填入
src/main/webapp/config.properties
中的tg_bot_token
字段 - 将你的tg userName填入
src/main/webapp/config.properties
中的tg_user_name
字段,用于默认接收消息用户 - 任意发送一条消息给上面创建的bot