开发者社区 问答 正文

钉钉如何获取员工的userId?

钉钉如何获取员工的userId?

展开
收起
真的很搞笑 2024-01-31 20:16:11 67 分享 版权
阿里云 AI 助理回答

要通过钉钉获取员工的userId,需要完成以下步骤和配置。以下是详细的操作流程和说明:


1. 创建并配置钉钉应用

首先,您需要在钉钉开放平台中创建一个企业内部应用,并完成相关权限配置。

  • 创建应用
    登录钉钉开放平台,进入企业内部开发页面,点击【创建应用】按钮,填写应用的基本信息(如应用名称、描述等)。完成后,系统会生成该应用的AppKeyAppSecret

  • 配置权限
    在应用的【权限管理】页面中,为应用分配必要的权限。例如:

    • 通讯录管理权限:用于获取员工的userId
    • 个人手机号信息权限:如果需要获取员工的手机号。
    • 其他权限:根据业务需求选择是否开启额外权限(如考勤、审批等)。

    权限范围建议选择【全部员工】,以确保所有员工数据均可被同步。


2. 获取免登码并解析userId

在完成应用配置后,可以通过免登码的方式获取员工的userId

  • 获取免登码
    当员工通过钉钉工作台访问您的应用时,钉钉会自动向您的服务端发送一个免登码(code)。该免登码是临时的,用于换取用户的userId

  • 调用接口获取userId
    使用免登码调用钉钉开放平台的接口/user/getuserinfo,可以解析出员工的userId。具体接口调用方式如下:

    POST https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE
    
    • ACCESS_TOKEN:通过AppKeyAppSecret调用/gettoken接口获取。
    • CODE:从前端接收到的免登码。

    接口返回结果示例:

    {
    "errcode": 0,
    "errmsg": "ok",
    "userid": "zhangsan"
    }
    

    其中,userid即为员工在钉钉中的唯一标识。


3. 绑定userId与IDaaS账户

如果您使用的是阿里云IDaaS服务,可以通过字段映射的方式将钉钉的userId与IDaaS账户进行绑定。

  • 字段映射配置
    在IDaaS的身份提供方配置页面中,设置字段映射规则。例如:

    • 将钉钉的userid字段映射到IDaaS账户的userid字段。
    • 如果需要支持存量用户绑定,可以使用user.identityProviderUserMap.{idpId}.identityProviderUserId格式进行匹配。
  • 同步数据
    配置完成后,触发一次全量同步或增量同步,确保钉钉的userId能够正确导入到IDaaS中。


4. 注意事项

  • 权限范围限制
    确保在钉钉管理后台中为应用配置了正确的权限范围。如果权限范围过小,可能导致部分员工无法获取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账户绑定。关键在于正确配置钉钉应用权限、调用免登码接口以及完成字段映射。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答