钉钉如何获取员工的userId?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要通过钉钉获取员工的userId
,需要完成以下步骤和配置。以下是详细的操作流程和说明:
首先,您需要在钉钉开放平台中创建一个企业内部应用,并完成相关权限配置。
创建应用
登录钉钉开放平台,进入企业内部开发页面,点击【创建应用】按钮,填写应用的基本信息(如应用名称、描述等)。完成后,系统会生成该应用的AppKey
和AppSecret
。
配置权限
在应用的【权限管理】页面中,为应用分配必要的权限。例如:
userId
。权限范围建议选择【全部员工】,以确保所有员工数据均可被同步。
userId
在完成应用配置后,可以通过免登码的方式获取员工的userId
。
获取免登码
当员工通过钉钉工作台访问您的应用时,钉钉会自动向您的服务端发送一个免登码(code
)。该免登码是临时的,用于换取用户的userId
。
调用接口获取userId
使用免登码调用钉钉开放平台的接口/user/getuserinfo
,可以解析出员工的userId
。具体接口调用方式如下:
POST https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
ACCESS_TOKEN
:通过AppKey
和AppSecret
调用/gettoken
接口获取。CODE
:从前端接收到的免登码。接口返回结果示例:
{
"errcode": 0,
"errmsg": "ok",
"userid": "zhangsan"
}
其中,userid
即为员工在钉钉中的唯一标识。
userId
与IDaaS账户如果您使用的是阿里云IDaaS服务,可以通过字段映射的方式将钉钉的userId
与IDaaS账户进行绑定。
字段映射配置
在IDaaS的身份提供方配置页面中,设置字段映射规则。例如:
userid
字段映射到IDaaS账户的userid
字段。user.identityProviderUserMap.{idpId}.identityProviderUserId
格式进行匹配。同步数据
配置完成后,触发一次全量同步或增量同步,确保钉钉的userId
能够正确导入到IDaaS中。
权限范围限制
确保在钉钉管理后台中为应用配置了正确的权限范围。如果权限范围过小,可能导致部分员工无法获取userId
。
专属钉钉的特殊处理
如果您使用的是专属钉钉并启用了专属账号功能,由于安全性设计,IDaaS可能无法直接获取手机号。此时,管理员需手动补充手机号或通过“一键授权”功能获取。
服务器出口IP配置
如果希望仅允许特定服务器请求钉钉接口,请在钉钉应用的【开发管理】页面中配置服务器出口IP。例如:
112.124.239.96,112.124.239.101,112.124.239.100,112.124.239.99,112.124.239.98,112.124.239.97,112.124.239.105,112.124.239.104,112.124.239.103,112.124.239.102
通过上述步骤,您可以成功获取员工的userId
,并将其与IDaaS账户绑定。关键在于正确配置钉钉应用权限、调用免登码接口以及完成字段映射。