用python控制钉钉软件_Python—实现钉钉后台开发

本文介绍了如何使用Python控制钉钉软件,实现钉钉后台开发的免登流程。步骤包括前端获取授权码code,后端通过code获取access_token,再换取用户userid,最后获取用户详情userinfo。详细过程包括解析url获取corpId,使用钉钉SDK请求授权码,以及后台通过API交互获取access_token、userId和userInfo。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

二、实现钉钉免登流程

免登流程分四步:1、前端获取钉钉免登授权码code;2、后端获取access_token;3、使用授权码code和access_token换取用户userid;4、通过access_token和userid换取用户详情userinfo。

前端获取授权码code。

// 获取当前网页的url:http://ding-web.lnexin.cn/?corpid=ding46a9582af5b7541b35c2f4657eb6378f

var currentUrl = document.location.toString()

$("#url").append(currentUrl)

// 解析url中包含的corpId

var corpId = currentUrl.split("corpid=")[1];

$("#corpId").append(corpId)

// 钉钉sdk初始化:dd.ready参数为回调函数,在环境准备就绪时触发,jsapi的调用需要保证在该回调函数触发后调用,否则无效。

dd.ready(function () {

// 使用SDK 获取免登授权码

dd.runtime.permission.requestAuthCode({

corpId: 'dingovyrjosjwioznxqn',

onSuccess: function (result) {

alert(JSON.stringify(result));

var code = result.code;

//$.get("http://49.232.56.68:8006/get/user",'code='+info.code,function(response){

$.get("http://49.232.56.68:8006/get/user?code=" + code, function (response) {

var response = JSON.parse(response)

// 下面的业务根据自己的需求来写

if (response.user) {

for (item in response.user) {

$("#result").append("

\t[user 属性] " + item + " : " + response.user[item] + "")

}

}

});

},

onFail: function(err) {

alert('fail: ' + JSON.stringify(err)); //处理失败的情况

},

});

});

// 如果没有走ready方法的话会走error方法。

// dd.error(function(error){

dd.error((error) => {

alert('dd error: ' + JSON.stringify(error));

alert(`dd error: ${JSON.stringify(error)}`);

});

后台获取access_token,然后获取userId,最后换取userInfo。

class AdminUser(BaseHandler):

def get(self):

info = self.request.arguments

code = self.get_argument("code", None)

# 获取access_token

AppKey = "ding4itesoimljq9ksmz"

AppSecret = "BW8XFsbesRJdOjmt_peYOQBTwVWUkQKONxZ2_2_fXhBQjmgq2Q6tRWrq867l84ht"

url = "https://oapi.dingtalk.com/gettoken?appkey={0}&appsecret={1}".format(AppKey, AppSecret)

resp = requests.get(url)

resp = resp.json()

access_token = resp["access_token"]

# 获取userId

url1 = "https://oapi.dingtalk.com/user/getuserinfo?access_token={0}&code={1}".format(access_token, code)

resp1 = requests.get(url1)

resp1 = resp1.json()

# 获取userInfo

url2 = "https://oapi.dingtalk.com/user/get?access_token={0}&userid={1}".format(access_token, resp1["userid"])

resp2 = requests.get(url2)

resp2 = resp2.json()

return self.write(json.dumps({"status": "success", "userinfo": resp2}))

三、获取钉钉后台人员

四、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值