钉钉服务
注:钉钉中的用户邮箱(email)和本系统中的员工邮箱应保持一致。
| Modifiers | Name | Description |
|---|---|---|
static boolean |
ENABLED |
|
static String |
SCANLOGIN_APPID |
|
static String |
SCANLOGIN_APPSECRET |
|
static Boolean |
SCANLOGIN_ENABLED |
| Type | Name and description |
|---|---|
static void |
bootStrapInit() |
String |
executeCallback(javax.servlet.http.HttpServletRequest request)执行钉钉的回调 |
String |
getAccessToken(Boolean scanlogin = false)获取 access_token 以便调用钉钉 API |
String |
getRedirectUri(String redirectUri)生成用于可获取 code 以实现 SSO 的重定向链接 |
String |
getScanloginUsername(String code)根据扫码登录传递的 code 获取本系统的用户登录名(通过钉钉用户邮箱关联) |
List<String> |
getUserIds(List<Long> employeeIds)根据本系统中的员工 ID 获得钉钉用户ID |
String |
getUsername(String code)TODO 删除事件回调 |
void |
registerCallbacks(Map<String, Closure> callbacks)注册事件回调接口 |
void |
sendTextMessage(String title, String content, String url, String userIds, String deptIds = "", Boolean toAllUser = false)推送文本消息给钉钉用户 |
| Methods inherited from class | Name |
|---|---|
class Object |
Object#wait(long, int), Object#wait(long), Object#wait(), Object#equals(Object), Object#toString(), Object#hashCode(), Object#getClass(), Object#notify(), Object#notifyAll() |
执行钉钉的回调
回调函数参见:https://open-doc.dingtalk.com/docs/doc.htm?treeId=385&articleId=104975&docType=1
加解密API参见:https://github.com/ddtalk/HarleyCorp/tree/master/src/com/alibaba/dingtalk/openapi/demo/utils/aes
获取 access_token 以便调用钉钉 API
参见:https://open-doc.dingtalk.com/docs/doc.htm?treeId=385&articleId=104980&docType=1
生成用于可获取 code 以实现 SSO 的重定向链接
该链接可以通过钉钉客户端访问,钉钉会自动重定向到目标地址。
链接格式和企业应用的 “工作台应用主页” 一样需要在最后添加 code=corpId,该链接的拼接方式和 SSO 实现依赖 MobileUI 的 o.user.sso 中的具体实现。
redirectUri - 跳转目标链接地址根据扫码登录传递的 code 获取本系统的用户登录名(通过钉钉用户邮箱关联)
code - 在钉钉客户端扫码登录时,登录成功跳转的 url 中追加的临时授权码 code 参数根据本系统中的员工 ID 获得钉钉用户ID
employeeIds - 员工ID列表TODO 删除事件回调
注册事件回调接口
查询事件回调接口参照:https://open-doc.dingtalk.com/docs/doc.htm?treeId=385&articleId=104975&docType=1#s8
注册事件回调接口参见:https://open-doc.dingtalk.com/docs/doc.htm?treeId=385&articleId=104975&docType=1#s7
注册时建议在一个新的线程中执行,避免一直等待回调应用启动完成。
callbacks - 包含监听的事件类型(如 user_add_org)和回调闭包的 Map,如果为 null 表示注册默认的事件。
回调闭包可以接收 (String eventType, Map data) 两个参数,后者为解密了的回调数据,如果执行失败可直接抛出异常。推送文本消息给钉钉用户
参见:https://open-doc.dingtalk.com/docs/doc.htm?treeId=385&articleId=28915&docType=2
title - 消息体的标题content - 消息内容,支持 HTML 标签url - 跳转链接,客户端点击消息时跳转到的 URL 地址userIds - 接收者的用户 userId 列表(钉钉通讯录的的用户邮箱,和本系统的用户保持一致)列表,多个接收者用 ‘,’ 分隔,最多支持20个。deptIds - 部门ID列表,多个接收者用 ‘,’ 分隔,最多支持20个。toAllUser - 是否向全员发送。