钉钉小程序开发--获取用户详情

此篇内容举例为钉钉小程序企业内部开发

1.进入钉钉小程序开发者平台,开通通讯录读写权限、手机号信息等
钉钉小程序开发--获取用户详情_第1张图片
2.得到小程序appkey以及appsecret
钉钉小程序开发--获取用户详情_第2张图片
3. 根据appkey和appSecret获取 access_token

async function getAccessToken() {
  return new Promise((resolve, reject) => {
    dd.httpRequest({
      url: 'https://oapi.dingtalk.com/gettoken?appkey=对应值&appsecret=对应值',
      success: function(res) {
        console.log("获取access_token");
        console.log(res.data);
        access_token = res.data.access_token;
        resolve(res)
      }
    })
  })
}

4.获取免登授权码(这个方法api文档提供)

 dd.getAuthCode({
      success: function(res) {
        console.log("免登授权码")
        console.log(res)
        authCode = res.authCode
      }
    });

5.根据access_token获取userid

 async function getUserid() {
      return new Promise((resolve, reject) => {
        dd.httpRequest({
          url: 'https://oapi.dingtalk.com/user/getuserinfo?access_token=' + access_token + '&code=' + authCode,
          success: function(res) {
            console.log("获取userid");
            console.log(res.data);
            userid = res.data.userid
            resolve(res)
          }
        })
      })
    }
  1. 根据access_token和userid获取用户详情
async function getUserDetail() {
      return new Promise((resolve, reject) => {
        dd.httpRequest({
          url: 'https://oapi.dingtalk.com/user/get?access_token=' + access_token + '&userid=' + userid,
          success: function(res) {
            console.log("用户详情");
            console.log(res);
            resolve(res)
          }
        })
      })
    }

7.依次执行函数即可得到用户详情

    await getAccessToken();
    await getUserid();
    await getUserDetail();

说明:由于钉钉提供的dd.httpRequest方法为异步方法,而此处各种id的获取具有依赖关系,为保证请求依次执行使用了promise、async以及await,虽是异步,却具有同步的效果

你可能感兴趣的:(钉钉小程序开发)