开发准备
钉钉开发的第一步
- 自己所在的企业有在使用钉钉,向管理员申请一个开发者权限。
- 还未就业,可以自己去钉钉平台注册一个企业,不需要认证的。
钉钉开发的第二步,登录钉钉开发者平台
扫码登录,第一次需要设置一个管理员密码,我这边已经设置过了,直接输入密码即可登录。
登录成功
点击 【应用开发】
企业内部开发:企业内部开发是指“开发企业内部应用”,供钉钉企业内部的人员使用。企业可以选择由企业内部的开发者进行开发,或者由企业授权定制服务商进行开发。
第三方企业应用:第三方企业应用开发,是指开发者以钉钉、企业之外的第三方身份,基于钉钉的开放能力开发应用,并提供给钉钉上的其他公司使用。
第三方个人应用:第三方个人应用与企业内部应用、第三方企业应用不同,个人应用主要是提供给钉钉上的个人用户来使用,不需要企业进行授权开通,也无需感知企业信息,只需要个人进行授权即可使用。
移动接入应用:安卓或者苹果应用软件分享文章到钉钉里面,还有一个就是PC扫码登录
Hello World 示例
下面,带着大家一起,写一个最简单的扫码登录,只需要很短的时间就能完成。
移动接入应用 => 创建扫码登录应用授权
授权LOGO地址:一张logo图片地址
回调域名:扫码成功后跳转后的地址
扫码登录页面,Hello.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>时刻在奔跑</title>
</head>
<script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
<body>
<div id="login_container"></div>
</body>
<script>
/*
* 解释一下goto参数,参考以下例子:
* var url = encodeURIComponent('http://localhost.me/index.php?test=1&aa=2');
* var goto = encodeURIComponent('https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=appid&response_type=code&scope=snsapi_login&state=STATE&redirect_uri='+url)
*/
var url = encodeURIComponent('http://localhost/success.html');
var goto = encodeURIComponent('https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=dingoat4ss2h0bkuvpcgzp&response_type=code&scope=snsapi_login&state=STATE&redirect_uri='+url)
var obj = DDLogin({
id:"login_container",//这里需要你在自己的页面定义一个HTML标签并设置id,例如<div id="login_container"></div>或<span id="login_container"></span>
goto: goto, //请参考注释里的方式
style: "border:none;background-color:#FFFFFF;",
width : "365",
height: "400"
});
var handleMessage = function (event) {
var origin = event.origin;
console.log("origin", event.origin);
// 判断是否来自ddLogin扫码事件。
if( origin == "https://login.dingtalk.com" ) {
var loginTmpCode = event.data;
//获取到loginTmpCode后就可以在这里构造跳转链接进行跳转了
console.log("loginTmpCode", loginTmpCode);
}
};
if (typeof window.addEventListener != 'undefined') {
window.addEventListener('message', handleMessage, false);
} else if (typeof window.attachEvent != 'undefined') {
window.attachEvent('onmessage', handleMessage);
}
</script>
</html>
成功页面,success.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>成功</title>
</head>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
<body>
<h1 id="show"></h1>
</body>
<script>
$(document).ready(function(){
console.log(11111)
$("#show").html("成功!!! 获取code:"+getQueryVariable("code"))
});
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
</script>
</html>
获取到code,我们就可以通过接口获取到用户的信息,和微信类似,下一节我们会说到通过code如何获取用户的信息。