开发者社区 问答 正文

自建微应用接入时的问题



PC 端:

DingTalkPC.config({
  agentId: _config.agentId,
  corpId: _config.corpId,
  timeStamp: _config.timeStamp,
  nonceStr: _config.nonceStr,
  signature: _config.signature,
  jsApiList: [
    'runtime.permission.requestAuthCode',
    'device.notification.alert',
    'device.notification.confirm',
    'biz.contact.choose',
    'device.notification.prompt',
    'biz.ding.post'] // 必填,需要使用的jsapi列表
});


确认上述参数无误, 在获取当前用户信息时, 能够换取到 authcode, 但是拿不到用户信息,返回的 json 是 null
对应用服务器有什么要求么? 诸如 必须支持 https 这样的要求?





展开
收起
lvqing 2018-04-02 11:06:08 1994 分享 版权
阿里云 AI 助理回答

在使用钉钉PC端的JavaScript API调用过程中,如果能够成功换取到authCode但获取用户信息时返回null,这通常意味着后端服务器与钉钉服务器的交互存在问题。关于应用服务器的要求,有以下几点可能影响到你的场景:

  1. HTTPS要求:虽然不是所有API都强制要求HTTPS,但在处理用户身份验证和敏感数据时,钉钉确实推荐使用HTTPS来保证数据传输的安全性。确保你的后端服务支持HTTPS,并且在配置钉钉回调地址时使用的是HTTPS URL。

  2. Token验证及时间戳:确保你的后端服务器在向钉钉服务器请求用户信息时,正确地使用了access_token,并且注意access_token的有效期,过期需要重新获取。同时,请求中包含的时间戳和签名(signature)必须是按照钉钉开放平台文档生成的,确保这些参数的准确无误。

  3. 权限与角色:检查当前登录用户的权限是否足够获取个人信息。某些企业内部应用可能会对不同角色的用户访问权限进行限制。

  4. API调用频率:如果短时间内大量请求,可能会触发钉钉的流量控制策略,导致请求失败或返回null。请参考钉钉开放平台的API调用限制,合理安排请求频率。

  5. 错误码分析:尽管你提到返回json为null,但通常情况下,即使失败钉钉API也会返回一个错误码和错误信息。建议在后端日志中详细记录每次请求的响应状态码和具体错误信息,以便更精确地定位问题。

  6. 网络环境:确认服务器的网络环境没有阻止对外部服务(特别是钉钉API服务器)的访问,如防火墙设置、DNS解析问题等。

  7. 后端逻辑验证:检查后端处理authCode换取用户信息的逻辑是否有误,比如解码、参数传递、异常处理等方面。

综上所述,虽然HTTPS不是绝对必要条件,但为了安全性和可能的未来兼容性,建议使用HTTPS。同时,重点检查后端处理逻辑、权限设置、以及与钉钉服务器交互的细节。

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