第5节--集成钉钉消息,点击钉钉消息如何免登进入业务系统
如何根据授权码直接进入业务系统?
1 由前端根据钉钉企业id去获取钉钉用户授权码。传递服务端(后端),服务端根据授权码去调钉钉接口,如果发现该用户的钉钉id和业务系统的某个用户有关联关系,服务端进行seesion处理。具体可以看文档交互。
大概所有接口: 前端获取授权码。前端调用后端免登接口(参数:授权码,钉钉企业id等),后端调用钉钉SDK根据授权码获取用户信息,session处理。
点击消息免登实现?
消息模板需要配置链接点击页,笔者配置的页面为
dingtalk://dingtalkclient/action/openapp?corpid=${corpId}&container_type=work_platform&app_id=${appId}&redirect_type=jump&redirect_url=${url}
${corpId} ${appId} 可以调用消息模板发送工作消息赋值, {url} 赋值,重定向地址 一定要 urlencode编码
import java.io.UnsupportedEncodingException; import java.net.URLEncoder; public class DingTalkRedirectURLEncoder { public static void main(String[] args) { String redirectURL = "https://example.com/redirect"; String encodedURL = encodeRedirectURL(redirectURL); System.out.println("Encoded URL: " + encodedURL); } public static String encodeRedirectURL(String redirectURL) { try { return URLEncoder.encode(redirectURL, "UTF-8"); } catch (UnsupportedEncodingException e) { // 处理编码异常 e.printStackTrace(); } return null; } }
这样在工作台,打开消息进入的是配置的前端处理逻辑页面,前端获取重定向地址中的cropId ,去调用用户授权码,再去调用后端免登接口,实现直接进入业务系统。