开发者社区 问答 正文

通过CODE换取用户身份

通过code换取用户身份不正常,获取的是另一个测试企业的用户 信息
https://oapi.dingtalk.com/user/getuserinfo?access_token=ACCESS_TOKEN&code=CODE


[测试企业1]
SuiteToken:f68e2d885bab3ae5b68f87561cb610b5
企业编号auth_corpid:dingad2f6f71715641e1
permanent_code:fjfqYKAWNliQuOx0J0ZoJw4g8sfpQmKBgcxhe_W7d9bApvxjamJLgw_dnrTdw_px
获取企业授权的access_token:{"access_token":"50873f7d01793ea4b828baa0ce0304c9","errcode":0,"errmsg":"ok","expires_in":7200}
临时授权码authcode:e6fcbb1a61d1355eafa098718b57285f
当前用户:{"deviceId":"13f8bcffd216361cdef49a596971e9a1","errcode":0,"errmsg":"ok","is_sys":false,"sys_level":0,"userid":"03421033191273056"}


[测试企业2]
SuiteToken:f68e2d885bab3ae5b68f87561cb610b5
企业编号auth_corpid:ding7d4854a4254637d3
permanent_code:uuyinrF2uadFrG3vZXrJoMhs5kksxa5UsCPOIIepJhWxewkfh11xU4e2O8OwE8Bl
获取企业授权的access_token:{"access_token":"fe076ef8f5ad3934b33d2edc8214c42a","errcode":0,"errmsg":"ok","expires_in":7200}
临时授权码authcode:15861e1a641533b0acb4fa562ac97acb
当前用户:{"deviceId":"13f8bcffd216361cdef49a596971e9a1","errcode":0,"errmsg":"ok","is_sys":false,"sys_level":0,"userid":"03421033191273056"}


上面是两个测试企业相关的信息,从上面贴出的信息可以看到测试企业2通过code获取用户身份信息,最后得到的userid和测试企业1的userid想同,userid应该是唯一的不应该一致的,这是什么原因? 求大神解决? 急急急....


另外说补充下:
测试企业1和测试企业2添加的都是同一个用户,测试企业2添加用户的时候使用的是分享团队二维码的方式。


展开
收起
小圈快跑 2016-06-28 10:25:32 3889 分享 版权
阿里云 AI 助理回答

根据您提供的问题,看起来您在尝试通过DingTalk OpenAPI的/user/getuserinfo接口使用access_token获取用户信息时,遇到了返回信息不属于预期企业用户的情况。这可能是因为access_token的来源或使用场景与预期不符。请参考以下步骤进行排查和解决:

  1. 检查Access Token的有效性及来源

    • 确认您使用的ACCESS_TOKEN是针对目标企业的,而不是其他测试企业的。Access Token通常与特定的企业应用和权限范围绑定。
    • 重新检查获取Access Token的过程,确保调用https://oapi.dingtalk.com/gettoken时,appkeyappsecret属于正确的应用,并且该应用已授权访问目标企业的用户信息。
  2. 验证Code换取Access Token的流程

    • 如果您是通过用户授权码(code)换取的Access Token,请确保此code是在正确的企业环境中由用户授权获得的。错误的code会导致获取到不同企业的用户信息。
    • 检查换取Access Token的请求URL是否正确指向了目标企业的OpenAPI端点,避免因环境混淆导致的问题。
  3. 查看应用权限设置

    • 在钉钉开放平台中检查您的应用权限配置,确保应用具有“获取用户基本信息”的权限(scope)。如果权限不足,即使access_token有效,也可能无法获取到期望的信息。
  4. 确认用户身份

    • 验证当前操作的用户确实属于您预期查询的企业。有时候,用户可能同时属于多个企业组织,特别是当使用个人账号登录不同企业时,容易混淆。
  5. 调试与日志分析

    • 使用DingTalk OpenAPI Explorer进行调试,以排除参数传递或接口调用方式上的错误。注意观察返回的错误码和提示信息,这些可以帮助定位问题所在。
    • 查看调用接口时返回的HTTP状态码和错误详情,如果有错误反馈,按照错误提示进行相应的调整。
  6. 安全与合规性检查

    • 确保您的应用和操作符合钉钉开放平台的安全策略和用户数据隐私规定,不当的使用可能会导致接口调用受限或失败。

如果以上步骤均未发现明显问题,建议直接咨询钉钉开发者支持或查看钉钉开放平台的帮助文档,以获取更具体的帮助和指导。

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