公司开发的财务共享中心跟钉钉做了接口,手机端登陆时好时坏,不好用的时候会报错,报错内容如图所示
不存在dingdingOpenId
{jsticket:'Q95UwPiJHYp2rIN3vnRioYpm5LzQ2GpepXTGb24T1rpdIdz2WJhRB3YvBx21jYvIl7ygg0Iwaam9NZU7qrFNBw',signature:'395cc854bd4e750dbca6b17349b75d3646e6379d',nonceStr:'abcdefg',timeStamp:'1478909690',corpId:'ding79e7302757c3f14e',agentid:'39447644'}
绑定钉钉账号cfg:{jsticket:'Q95UwPiJHYp2rIN3vnRioYpm5LzQ2GpepXTGb24T1rpdIdz2WJhRB3YvBx21jYvIl7ygg0Iwaam9NZU7qrFNBw',signature:'395cc854bd4e750dbca6b17349b75d3646e6379d',nonceStr:'abcdefg',timeStamp:'1478909690',corpId:'ding79e7302757c3f14e',agentid:'39447644'}
08:14:50.598 [http-bio-9080-exec-788] WARN c.v.f.b.utils.spring.PropertiesUtil - Cannot find [web.extend.include.file] in [conf/system-config.properties], so return default value: [/jsp/common/includes/blank_include.jsp]
{jsticket:'Q95UwPiJHYp2rIN3vnRioYpm5LzQ2GpepXTGb24T1rpdIdz2WJhRB3YvBx21jYvIl7ygg0Iwaam9NZU7qrFNBw',signature:'f10add381e1560622042c43b60923336c3c0b4b0',nonceStr:'abcdefg',timeStamp:'1478909691',corpId:'ding79e7302757c3f14e',agentid:'39447644'}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的报错信息“不存在dingdingOpenId”,这通常意味着在尝试通过钉钉接口进行身份验证或数据交互时,没有正确获取到用户的钉钉OpenID。钉钉OpenID是钉钉用户在每个企业内部的唯一标识,对于财务共享中心与钉钉集成来说,它是识别和授权用户的关键。
为了解决这个问题,请检查以下几个方面:
确保钉钉OAuth2.0授权流程正确实施:当用户通过手机端登录时,需要确保应用引导用户完成了钉钉的授权流程,这样才能获取到dingdingOpenId
。请检查您的授权URL是否正确包含了scope参数(如snsapi_base或snsapi_userinfo),以及redirect_uri是否配置无误。
检查后端代码逻辑:确认在接收到钉钉回调时,是否正确解析了URL中的code参数,并用此code调用了钉钉的access_token接口以换取包含dingdingOpenId的用户信息。参考钉钉开发文档中关于获取用户信息的部分。
权限检查:确认您的钉钉应用是否有足够的权限来获取用户信息。在钉钉开放平台的应用管理页面检查应用的权限设置,特别是涉及到用户信息读取的权限。
时间戳和签名验证:虽然错误信息未直接指向这部分,但确保timestamp、nonceStr、signature等参数生成和验证的逻辑正确无误也是必要的,因为这些参数的错误也可能导致认证失败,间接影响到OpenID的获取。
日志分析:深入分析服务器端的日志,特别是与钉钉接口交互相关的部分,可能会提供更多关于为何无法获取到dingdingOpenId
的线索。
系统配置一致性:注意日志中提到的警告信息,虽然它可能不是直接原因,但系统配置的一致性和完整性对整体功能的稳定运行也很重要。检查web.extend.include.file
配置项是否在其他地方被正确设置,尽管这看起来与当前问题不直接相关。
如果以上步骤都检查无误,建议复审整个集成流程或者联系钉钉开发者支持获取更专业的帮助。