钉钉微应用 免登 消息发送

  • 在钉钉中对已有系统的免登
    • 新建企业内部开发H5微应用
    • 对H5微应用的配置
    • 免登授权码的获取
    • 根据免登授权码获取用户身份
      • 获取access_token
      • 通过access_token 和 免登授权码获取用户信息

在钉钉中对已有系统的免登

新建企业内部开发H5微应用

对于为什么要选择企业内部H5微应用的开发,我这边也是比较尴尬,因为要满足原有系统的消息发送,所以只能选择企业内部应用,当然如果 只需要免登功能 的话选择移动应用接入,具体原因马上就来。

对H5微应用的配置

相信对于使用钉钉的管理员对于这些的配置,应该是不在话下的,简单明了。

其中应用首页地址就是点开微应用图标后会跳转的链接了。

那么可以跳转到现在使用的系统中就能进行各种码的获取和兑换,然后完成免登了。那么开始吧

免登授权码的获取

根据钉钉的官方开发文档,从微应用进行免登需要从前端页面获取免登授权码
ps:这个坑爹的操作可能有别的方法代替吧…

官方文档没有明确说一定要从前端获取,我下了PHP版本的SDK,但是东西太多太杂也没去详细了解,就问了一下客服,从那边得到了准确的答复,emmm,要从前端获取…基于已开发的系统功能,这种获取免登授权码的方式极其不友好!但是,人在屋檐下不得不低头。

上代码:
<script src="//g.alicdn.com/dingding/dingtalk-jsapi/2.6.0/dingtalk.open.js"></script>
<script type="text/javascript">dd.ready(function() {// dd.ready参数为回调函数,在环境准备就绪时触发,jsapi的调用需要保证在该回调函数触发后调用,否则无效。dd.runtime.permission.requestAuthCode({corpId: "dingd0d89575d06ae19c35c2f4657eb6378f",onSuccess: function(result) {//成功获取后跳转到指定的URL 通过GET传一下需要的参数  result.code就是获取到的免登授权码window.location.href='/?/&state=D_LOGIN&code='+result.code;},onFail : function(err) {}});});
</script>

因为本来在使用的系统就是有判断COOKIE啊啥的免登判断的,现在又多个跳转导致点微应用还要再多跳转一次就很silly B= =

反正现在只是初步完成需求,等后期再优化也没什么大毛病。

获取免登授权码之后 就是通过该码换取用户身份了

根据免登授权码获取用户身份

获取access_token

这是一个老生常谈的问题了,如果曾经使用过微信公众平台相关功能的,坑定都知道这么个东西,简而言之这个凭证就是爸爸,有了这玩意才有资格做别的事情。

那么要获取access_token 需要使用微应用的 AppKey 和 AppSecret,这两项都能从钉钉开放平台中获取

继续上代码
function d_login($url, $sid = ''){if($_GET['state']!="D_LOGIN") return;$code = $_GET['code'];$appKey = AppKey;$appSecret = AppSecret;$getAccessToken = curl_get("https://oapi.dingtalk.com/gettoken?appkey=".$appKey."&appsecret=".$appSecret);$getAccessToken = _decode($getAccessToken);$access_token = $getAccessToken['access_token'];
}

那么现在access_token就获取到了
ps: curl_get是我们系统封装过的curl请求 ,总体来说就是通过访问某个URL,然后就会返回结果。

通过access_token 和 免登授权码获取用户信息

现在access_token和免登授权码都有了,就能着手获取用户信息了

废话不多说,继续上面未完成的代码
function d_login($url, $sid = ''){if($_GET['state']!="D_LOGIN") return;$code = $_GET['code'];$appKey = AppKey;$appSecret = AppSecret;$getAccessToken = curl_get("https://oapi.dingtalk.com/gettoken?appkey=".$appKey."&appsecret=".$appSecret);$getAccessToken = _decode($getAccessToken);$access_token = $getAccessToken['access_token'];      //如果不需要部门等信息,到这一步,获取userId其实就足够了$getUserId = curl_get("https://oapi.dingtalk.com/user/getuserinfo?access_token=".$access_token."&code=".$code."");$getUserId = _decode($getUserId);//这边返回的就是详细的用户信息了,包括部门、是否管理员等信息$getUserInfo = curl_get("https://oapi.dingtalk.com/user/get?access_token=".$access_token."&userid=".$getUserId['userid']."");$getUserInfo = _decode($getUserInfo);//因为我需要用唯一的id和系统内部的userid绑定 所以就只取了userid,然后绑起来$d_openid  = $getUserInfo['userid'];
}

至于怎么绑定到对应用户,这边再说我都感觉没面子,如果你不是开发人员,那就找开发人员,最多一顿午饭的事情,他就能帮你搞定= =

将d_openid存到cookie中,设定多长的有效时间就自己决定吧。

今天时间有限,就先到这里了。

钉钉企业内微应用对现有系统的免登和消息发送相关推荐

  1. 钉钉开发第三方H5微应用入门详细教程[ISV][免登流程][授权码][HTTP回调推送][识别用户身份][获取用户信息]...

    转载请注明原文地址:https://www.cnblogs.com/applerosa/p/11509512.html (by lnexin@aliyun.com 世间草木) 此教程注意点: 适用于第 ...

  2. 开发钉钉和企业微信微应用

    钉钉应用开发流程: 1.登录钉钉后台管理 -- 应用管理 -- 工作台 -- 自建应用 2.上传内部应用logo和名字.注意需要添加可访问域名的配置. 3.配置首页可访问地址:打包到线上的路径(注意配 ...

  3. java开发钉钉企业内部应用,免登授权+消息推送

    1.申请账号登操作直接看文档去申请就ok了,管理员身份登录,创建微应用 地址:钉钉管理后台 - 钉钉统一身份认证 2.免登授权 CORP_ID :企业id,CORP_SECRET:企业秘钥,agent ...

  4. Java对接钉钉开发第三方H5微应用详细教程

    文章转载自:钉钉开发第三方H5微应用入门详细教程[ISV][免登流程][授权码][HTTP回调推送][识别用户身份][获取用户信息] - 世间草木 - 博客园 (by lnexin@aliyun.co ...

  5. 钉钉企业内部应用获取登录用户信息

    1.创建企业内部应用 首先在钉钉开放平台注册企业内部应用. 选择[企业内部开发] 创建H5微应用 填写相关信息 企业内部H5微应用创建完成 2.接口开发前准备 开发前必读 了解不同应用所能支持的能力 ...

  6. 钉钉扫码免登-钉钉应用内免登的实现(附仓库及Demo)

    新版钉钉扫码免登及钉钉应用内免登的一次实现 (附仓库及Demo) Vue2, JDK1.8, SpringBoot2.x.x, 钉钉模块, 钉钉模块Demo, 钉钉开放平台 目录 新版钉钉扫码免登及钉 ...

  7. 「开发者说」多系统集成开发-企业自有系统快速上钉钉

    "在2020年初那个疫情卷地百草折,又是胡天飞雪的时候,钉钉就像一夜春风带来的梨花一样带给我们希望和力量,从最初的审批.待办.日程等基础功能的使用,到后面的内部集成开发,办公效率是一步一步提 ...

  8. NC移动报表H5应用介绍-可以集成钉钉或者企业微信

    移动报表H5应用介绍 目录 移动报表H5应用介绍... 1 1产品介绍... 2 1.1前言... 2 1.1.1简介... 2 1.1.2产品特色:... 2 1.2移动报表APP介绍... 2 1 ...

  9. SQL数据集支持数据参考功能,新增飞书、钉钉、企业微信平台接入支持,DataEase开源数据可视化分析平台v1.15.0发布

    10月10日,DataEase开源数据可视化分析平台正式发布v1.15.0版本. 在这一版本中,DataEase对数据源和数据集两个板块的交互进行了全面优化:数据集方面,SQL数据集新增数据参考功能, ...

  10. NC移动报表H5应用介绍可以集成钉钉和企业微信

    移动报表H5应用介绍 目录 移动报表H5应用介绍 1 1产品介绍 2 1.1前言 2 1.1.1简介 2 1.1.2产品特色: 2 1.2移动报表APP介绍 2 1.2.1产品适用NC版本 2 2安装 ...

最新文章

  1. RateLimiter 的底层实现是啥?
  2. [导入]用Javascript实现interface的类似功能
  3. windows批量添加用户
  4. c# 获取电脑硬件信息通用查询类[测试通过]
  5. 最全元素水平垂直居中方法
  6. Linux内存管理:知识点总结(ARM64)
  7. 面向对象--闭包 继承
  8. 【知识图谱系列】知识图谱多跳推理之强化学习
  9. Linux服务器自动清理缓存
  10. python绝对值、加法
  11. 寒武纪2021数字后端笔试题
  12. 微软应用商店打不开代码代码: 0x80131500
  13. HI3519 开发交流QQ群
  14. C++算法和数据结构之《二叉树》
  15. 量化金融模型ARCH模型官方例程(中文翻译版)
  16. mysql connstring_(最全的数据库连接字符串)connectionstring
  17. C语言数据的输入与输出
  18. 调用百度人体分析api 实现人体分析
  19. Mysql 数据库执行计划 EXPLAIN SELECT * FROM
  20. 从快递到电商,顺丰在谋划什么?

热门文章

  1. html在ios上不执行js,Javascript onloadedmetadata事件未在iOS设备上触发
  2. os_pend_multi.c
  3. uCOS事件相关函数代码理解
  4. 7-8月博乐推荐文章
  5. 推荐电影 历届奥斯卡获奖影片 1971-2008
  6. 学习帮——懒人菜谱,电饭煲可以做的菜!
  7. 可变卷积(Deformable ConvNets)算法的MXNet实现
  8. Math三点共线判断
  9. 关于SQLServer关键词“union all”与“order by”的矛盾
  10. matlab编写圆的公式,编写函数文件球半径为r的圆的面积周长 matlab