钉钉应用开发

MuYan2021-04-06web

微应用开发

  • 以下流程基于已有应用的前提下(基于开发组织开发流程)

  • 应用设置 —— 开发管理 —— 配置应用首页地址(或PC端首页地址)时,需要配置 $CORPID$

// 应用首页地址(PC端首页地址同理)
http://www.baidu.com/?corpId=$CORPID$

// 如访问地址带有 # 建议如下配置
http://www.baidu.com/#/?corpId=$CORPID$
  • 注:
    • 有的接口需要鉴权后调用。
    • Ticket推送建议使用钉钉云(聚石塔)部署环境,这样推送 Ticket 比较稳定(敲重点)。如非钉钉云(聚石塔)部署环境,推送可能存在提示推送成功,实际未推送的情况。

官方开发文档open in new window

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

官方开发文档open in new window错误码查询open in new window

上次更新 2026/6/23 11:49:15
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.8