钉钉第三方企业应用扫码登陆

钉钉上创建第三方企业应用,在扫码登陆获取token时候需要用到授权企业的corpId,那么扫码登陆时候这个corpId如何获取呀?

参考GPT和自己的思路:要获取扫码登录时所需要的授权企业的corpId,需要通过开发者后台中的应用详情页面查看。在企业内部管理端中,选择“H5微应用”或“PC端应用”,进入应用详情页面,可以看到“授权企业”的corpId。将该corpId复制到扫码登录时的相应位置即可完成扫码登录,获取token。

  • 给你找了一篇非常好的博客,你可以看看是否有帮助,链接:钉钉中的corpId有不同含义?
  • 以下回答由chatgpt基于相关博客总结生成:

    在创建钉钉第三方企业应用时,需要用到授权企业的corpId,但是在扫码登录获取token的过程中如何获取这个corpId呢?可以通过以下步骤实现:

    1. 在钉钉后台为应用配置回调接口,将接收事件回调的url地址设置为公网可以访问的url。
    2. 在代码中发起注册事件并为相应的事件注册回调。
    3. 接收钉钉回调事件并进行处理,通过钉钉提供的DingtalkCrypt类的 decrypt 方法从回调消息中获取corpId。

    下面是相应的代码实现:

    为应用配置回调接口:

    在钉钉后台为应用配置回调接口时,将接收事件回调的url地址设置为公网可以访问的url,具体操作可以参照钉钉的回调接口文档。

    发起注册事件:

    $c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST, DingTalkConstant::$FORMAT_JSON); $req = new OapiCallBackRegisterCallBackRequest(); $req->setUrl("https://example.com/api/res/dingtalk/callback"); // 设置接收事件回调的url $req->setAesKey($this->ENCODING_AES_KEY); $req->setToken($this->TOKEN); $req->setCallBackTag(json_encode(['bpms_task_change','user_leave_org'])); // 需要注册的回调事件 $resp = $c->execute($req, $this->getToken(),"https://oapi.dingtalk.com/call_back/register_call_back"); exit();

    接收钉钉回调事件:

    在接收到钉钉回调事件时,首先需要通过钉钉提供的DingtalkCrypt类对回调消息进行解密,并从中获取corpId,具体代码如下:

    // 解密回调消息 $result = $crypt->DecryptMsg($request_msg_sign, $request_timestamp, $request_nonce, $request_body, $corp_id); $body = json_decode($result, true);

    // 获取corpId $corp_id = $body["CorpId"];

    需要注意的是,这里的$corp_id即为授权企业的corpId,可以用来进行相应的操作。