我现在是创建了一个钉钉小程序,这个时候这个地址要配置成啥呢?在工作台上点击这个应用图标的时候需要免登陆,然后小程序再拿一个授权码去业务后端调用钉钉api校验并获取业务内部的一些信息
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要实现钉钉工作台点击应用图标时免登录,并通过小程序获取授权码调用钉钉 API 校验以获取业务内部信息,您需要完成以下配置和操作步骤:
在正式开始配置之前,您需要确保已创建钉钉身份提供方,以便实现 IDaaS 账户数据与钉钉用户数据的绑定。具体操作如下: - 将钉钉数据同步到 IDaaS:绑定钉钉-入方向。 - 将 IDaaS 数据同步到钉钉:绑定钉钉-出方向。
建议将钉钉扫码登录设置为默认登录方式,这样用户在钉钉工作台单击应用时,会自动实现免登。
在 IDaaS 中创建一个应用,并配置单点登录(SSO)。例如,您可以参考阿里云用户 SSO 的配置方法完成此步骤。
将 IDaaS 应用授权给需要访问该应用的账户。您可以在 单点登录 中设置为全员可访问,或在 授权 中根据账户或组织进行授权。
如果对接的是 SAML 应用(如阿里云 RAM),需要在 单点登录 中设置 应用账户。用户在进行单点登录时,IDaaS 会将用户的 IDaaS 账户名或应用账户名传递给应用,从而实现单点登录。
拼接应用的登录地址,格式如下:
https://{IDaaS 用户门户地址}/login/go/{IDaaS 应用 ID}
拼接后,您将获得类似以下的应用地址:
https://bm6sxxxx.aliyunidaas.com/login/go/app_mmhsgpkmsxxxxxxxxxxxxxxxx
此地址将用于后续钉钉应用的配置。
前往钉钉开放平台,在 应用开发 中创建 企业内部应用。填写应用名称等基本信息。
将步骤 3 中拼接的应用地址填写到钉钉应用的 开发管理 中。具体操作如下: - 在钉钉开放平台的 开发管理 页面,找到您的小程序。 - 将拼接好的应用地址填入 PC 地址 和 移动端地址 字段(PC 地址选填,填写后才可在钉钉 PC 端工作台中打开)。
完成测试和体验后,将钉钉应用正式发布,并设置权限范围。您可以选择向全部员工、部分员工或仅管理员授权。授权完成后,管理员可以在钉钉中为部分员工或全部员工设置应用入口。
当用户在钉钉工作台点击应用图标时,系统会自动跳转到配置的小程序地址,并触发免登录流程。此时,小程序可以通过以下步骤获取授权码并调用钉钉 API:
在小程序启动时,钉钉会通过 URL 参数传递授权码(authCode
)。您需要在小程序代码中解析该参数。例如:
// 获取 URL 参数中的 authCode
const urlParams = new URLSearchParams(window.location.search);
const authCode = urlParams.get('authCode');
使用获取到的 authCode
,调用钉钉开放平台的 API 进行校验,并获取用户信息。例如:
// 调用钉钉 API 校验授权码
fetch('https://oapi.dingtalk.com/user/getuserinfo', {
method: 'GET',
headers: {
'Content-Type': 'application/json',
},
params: {
access_token: 'your_access_token', // 替换为实际的 access_token
code: authCode, // 使用获取到的 authCode
},
})
.then(response => response.json())
.then(data => {
console.log('用户信息:', data);
// 处理用户信息并获取业务内部数据
})
.catch(error => {
console.error('API 调用失败:', error);
});
在成功校验授权码并获取用户信息后,您可以将用户信息传递到业务后端,进一步获取业务内部的相关数据。
通过以上步骤,您可以实现钉钉工作台点击应用图标时的免登录功能,并通过小程序获取授权码调用钉钉 API 校验,最终获取业务内部信息。