钉钉应用开发
微应用开发
以下流程基于已有应用的前提下(基于开发组织开发流程)
应用设置 —— 开发管理 —— 配置应用首页地址(或PC端首页地址)时,需要配置 $CORPID$
// 应用首页地址(PC端首页地址同理)
http://www.baidu.com/?corpId=$CORPID$
// 如访问地址带有 # 建议如下配置
http://www.baidu.com/#/?corpId=$CORPID$
- 注:
- 有的接口需要鉴权后调用。
- Ticket推送建议使用钉钉云(聚石塔)部署环境,这样推送 Ticket 比较稳定(敲重点)。如非钉钉云(聚石塔)部署环境,推送可能存在提示推送成功,实际未推送的情况。
PC 端扫码登录
钉钉开放平台 —— 应用开发 —— 移动接入应用 —— 登录 —— 创建扫码登录应用授权
前端示例代码:
<!-- 引入 ddLogin -->
<script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
<!-- 二维码位置Id 设置 -->
<div id="login_container" />
let url = encodeURIComponent(`${window.location.href.split('#')[0]}#/`); // 如无 # 可去除 #/
let appId = '钉钉微应用APPID'
let authUrl = `https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=${appId}&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=${encodeURIComponent(url)}`
let goto = encodeURIComponent(authUrl)
let obj = DDLogin({
id: "login_container", //这里需要你在自己的页面定义一个HTML标签并设置id,例如<div id="login_container"></div>或<span id="login_container"></span>
goto, //请参考注释里的方式
style: "border: none;background-color:#FFFFFF;",
width: "100%",
height: "300"
});
let handleMessage = (event) => {
let origin = event.origin;
if (origin == "https://login.dingtalk.com") { //判断是否来自ddLogin扫码事件。
//获取到loginTmpCode后就可以在这里构造跳转链接进行跳转了
let loginTmpCode = event.data;
//此步拿到临时loginTmpCode换取正式code
window.location.href = `${authUrl}&loginTmpCode=${loginTmpCode}`
}
};
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('message', handleMessage, false);
} else if (typeof window.attachEvent != 'undefined') {
window.attachEvent('onmessage', handleMessage);
}
- 注: 扫码跳转后会在 url 后面拼接一个 code,例:http://www.baidu.com/?code=XXX
Powered by Waline v2.15.8