资讯专栏INFORMATION COLUMN

钉钉isv免登录

muddyway / 2012人阅读

摘要:而我现在要说的是接入中的必要条件,免登录。第一步注册钉钉企业账号。当所有的工作完成以后我们可以用这个钉钉账号,登陆钉钉,找到你的测试企业,在测试企业的应用中就会有你创建的应用。需要注意的是回调地址必须有效套件必须激活相关文档钉钉开发官网地址

钉作为团队内部人员的通讯软件被原来越多的企业所应用,同时钉钉支持接入第三方应用和企业内部个人应用,即isv接入和企业接入。而我现在要说的是isv接入中的必要条件,isv免登录。
准备工作
钉钉有详细的开发文档,这个是开发文档的链接地址,其中有一个isv的接入指南,这上面介绍了isv是如何接入。
第一步:注册钉钉企业账号。在这里可以看到
第二步:成为钉钉开发者,链接地址
第三步:是开发套件。
首先我们需要创建套件

点击套件的创建,会出现下面的画面

这些在开发文档上面都有介绍。在这个画面中主要是回调url。钉钉为php开发者写了一个关于php的demo,demo地址,这个里面有一个config.php,里面的参数是需要我们进行填写


在我们还没有获取到SUITE_KEY、SUITE_SECRET时默认的是空值,token、ENCODING_AES_KEY都是创建套件的时候填写的。APPID是应用的id,现在先为空。
回调的方法是receive.php。回调url可以写成http://域名/地址/receive.php
填写完成以后我们需要验证url的有效性,验证成功以后,点击确定。
我们会在套件基本信息中获取到SUITE_KEY、SUITE_SECRET,我们需要将值填写到config.php中。
然后需要创建应用

主页的地址就是我们点击应用进入的地址。
创建完应用以后,APPID即可写上应用的id。
注册测试企业


管理员账号可以写已经注册的钉钉的手机号码,如果这里随便写个账号的话,注册完成以后需要绑定你已经注册的钉钉账号。当所有的工作完成以后我们可以用这个钉钉账号,登陆钉钉app,找到你的测试企业,在测试企业的应用中就会有你创建的应用。
创建完成测试企业以后,我们需要对测试企业进行授权。


当点击授权以后,钉钉会向我们写的回调url,即receive.php推送`/**

 * 临时授权码
 */
else if ("tmp_auth_code" === $eventType)
{
    $tmpAuthCode = $eventMsg->AuthCode;
    Activate::autoActivateSuite($tmpAuthCode);
}`
我们可以在方法中看到执行这段代码,这段代码主要是获取到临时授权码,然后`

require_once(__DIR__ . "/../util/Log.php");
require_once(__DIR__ . "/../util/Http.php");
require_once(__DIR__ . "/ISVService.php");
/**

激活ISV套件方法类
*/

class Activate
{

/**
 * 某个企业的临时授权码在成功换取永久授权码后,开放平台将不再推送该企业临时授权码。
 */
public static function autoActivateSuite($tmpAuthCode)
{
    //持久化临时授权码
    //Cache::setTmpAuthCode($tmpAuthCode);
    $suiteTicket = Cache::getSuiteTicket();
    $suiteAccessToken = ISVService::getSuiteAccessToken($suiteTicket);
    Log::i("[Activate] getSuiteToken: " . $suiteAccessToken);
    //获取永久授权码以及corpid等信息,持久化,并激活临时授权码
    $permanetCodeInfo = ISVService::getPermanentCodeInfo($suiteAccessToken, $tmpAuthCode);
    Log::i("[Activate] getPermanentCodeInfo: " . json_encode($permanetCodeInfo));
    
    $permanetCode = $permanetCodeInfo["permanent_code"];
    $authCorpId = $permanetCodeInfo["corp_id"];
    Log::i("[Activate] permanetCode: " . $permanetCode . ",  authCorpId: " . $authCorpId);
    
    /**
     * 获取企业access token
     */
    $corpAccessToken = ISVService::getIsvCorpAccessToken($suiteAccessToken, $authCorpId, $permanetCode);
    Log::i("[Activate] getCorpToken: " . $corpAccessToken);
    
    /**
     * 获取企业授权信息
     */
    $res = ISVService::getAuthInfo($suiteAccessToken, $authCorpId, $permanetCode);
    Log::i("[Activate] getAuthInfo: " . json_encode($res));
    self::check($res);
    /**
     * 激活套件
     */
    $res = ISVService::activeSuite($suiteAccessToken, $authCorpId, $permanetCode);
    Log::i("[activeSuite]: " . json_encode($res));
    self::check($res);
}


static function check($res)
{
    if ($res->errcode != 0)
    {
        exit("Failed: " . json_encode($res));
    }
}

}`
这段代码执行完成以后主要是激活套件,只有激活套件以后,我们才可以在测试企业的应用中看到我们创建的应用。否则无法看到应用。
应用的客户端页面,即在手机端看到的首页
在demo中我们会看到一个index.php和一个indexpc.php,一个是手机端的首页一个是pc端的首页。index.php的代码是:`
require_once(__DIR__ . "/config.php");
require_once(__DIR__ . "/util/Http.php");
require_once(__DIR__ . "/api/Auth.php");
$corpId = $_GET["corpid"];
?>

jsapi demo












`
在这个里面我们可以看到一个corpid的参数,这个是企业的id,目前是我们的测试企业的id,这个参数可以在我们创建的测试企业的管理页面看到。在执行的receive.php中,我们可以看到有一个日志,一个是isv.log,在这个里面也可以获取到corpid。而在index.php中这个是变量,所以我们在创建应用时的主页地址,可以增加corpid这个参数,即index.php?corpid=。
当所有的配置都弄成功以后,我们可以得手机端点击应用获取到userid。即免登录成功。
需要注意的是
回调地址必须有效
套件必须激活
相关文档:
钉钉开发官网地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21996.html

相关文章

  • 阿里云发布SaaS加速器 意欲何为?

    摘要:未来已来,阿里云峰会向外界阐述了未来十年的战略方向第一技术,达摩院加持的云。不过阿里云提出的加速器计划,还是让企业服务市场为之慌乱。笔者认为阿里云的加速器计划,不是阿里做不做,关键的核心他有可能会影响到整个软件行业的未来格局。All in Cloud未来已来,阿里云峰会向外界阐述了未来十年的战略方向:第一、技术,达摩院加持的云。第二、产品,数据智能的云。第三、商业,最佳实践的云。第四、生态,...

    tuniutech 评论0 收藏0
  • 阿里20亿小程序繁星计划你最需要知道的几个问题(0325更新)

    摘要:月日,在阿里云峰会北京站上,阿里巴巴旗下的阿里云支付宝淘宝钉钉高德等联合发布阿里巴巴小程序繁星计划提供亿元补贴,扶持万小程序开发者万商家。会上,阿里云正式发布了小程序云。看到繁星计划已上热搜。通过小程序云服务可以极大的降低交付部署成本。3月21日,在2019阿里云峰会·北京站上,阿里巴巴旗下的阿里云、支付宝、淘宝、钉钉、高德等联合发布阿里巴巴小程序繁星计划:提供20亿元补贴,扶持200万+小...

    lansheng228 评论0 收藏0
  • H3BPM-关于钉钉登失败的处理

    摘要:企业钉钉的免登陆验证失败处理方案钉钉后台配置首先创建应用配置信息应用设置白名单出口服务端出口后台配置后台管理参数设置钉钉同步可以同步用户到钉钉组织机构常见问题失效错误码确认白名单是否正确需要重启引擎签名校验失败请检查等参数是否正确检查钉钉配 企业钉钉的免登陆验证失败 处理方案 钉钉后台配置 1.首先创建H5应用showImg(https://segmentfault.com/img/b...

    flyer_dev 评论0 收藏0
  • H3BPM-关于钉钉登失败的处理

    摘要:企业钉钉的免登陆验证失败处理方案钉钉后台配置首先创建应用配置信息应用设置白名单出口服务端出口后台配置后台管理参数设置钉钉同步可以同步用户到钉钉组织机构常见问题失效错误码确认白名单是否正确需要重启引擎签名校验失败请检查等参数是否正确检查钉钉配 企业钉钉的免登陆验证失败 处理方案 钉钉后台配置 1.首先创建H5应用showImg(https://segmentfault.com/img/b...

    fish 评论0 收藏0
  • H3BPM-关于钉钉登失败的处理

    摘要:企业钉钉的免登陆验证失败处理方案钉钉后台配置首先创建应用配置信息应用设置白名单出口服务端出口后台配置后台管理参数设置钉钉同步可以同步用户到钉钉组织机构常见问题失效错误码确认白名单是否正确需要重启引擎签名校验失败请检查等参数是否正确检查钉钉配 企业钉钉的免登陆验证失败 处理方案 钉钉后台配置 1.首先创建H5应用showImg(https://segmentfault.com/img/b...

    Aceyclee 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<