欢迎分享,转载请注明来源:夏雨云
企业内部应用一般部署在内网,没有固定的公网IP,这样在访问钉钉的API时就会被拦截下来。钉钉的服务器出口IP只支持一个统配符,出现不匹配的情况就会被拦截。 当然存在多种解决方案,各有差别,但是本质都需要一个公网服务器,公网搭设一个代理服务: 这里我介绍一种用反向代理的方法解决没有固定IP的方案。内网的windows服务器只需要一个根证书、改Hosts文件即可。 本地hosts文件强制解析到自有服务器上,中间的证书是自签名认证的,服务器获取到请求后转发给真正的钉钉服务器,这样出口IP就确定了下来,能过验证。注意根证书的私钥不要泄露了,否则带来中间人攻击的风险。成功后示例 开发前准备: 1,开放平台注册申请权限 2,选择钉钉应用类型,创建应用,获取AppKey,AppSecret,CORP_ID 3,准备开发环境 静态页面、JS,CSS放在ngnix,本地接口用tomcat。(这个我在想flutter 如何能够放到里面不是太理解) 4,调试:钉钉的H5微应用调试只能“真机”调试,所以 建议 调试的时候使用 内网穿透工具 ; 5,JSAPI免登授权码 获取当前钉钉登录用户的账号信息,需要通过免登授权码换取 (这个需要后端api进行辅助 前端和后端才能进行通信)在开发者后台添加完大概就这样了, 其他信息:如 回调URL(在服务端搭好之后填写), 首页地址等, 后续可以修改. 1. 相关配置参数可参照上面 应用基础信息 那张图来一 一对应 . 2. 所有的关键信息 是存储在服务端的, 如我们的suiteKey/suiteSecret/suiteTicket/aesKey/token 3. 所以和钉钉相关的数据交互都是在服务端,后台完成的, 除了获取免登授权码 4. 我们的前端和我们的服务端交互过程中, corpId 由前端获取 , 传递给我们 5. 服务端和钉钉交互所使用的accessToken , 可以每次都去钉钉重新获取, 但是更建议在有效期内, 后端获取一次, 然后存储在前端, 每次的数据交互将token 传递给后端 6. 钉钉向我们服务器发送请求, 也就是钉钉应用里面的回调地址 7. 钉钉的所有消息都是通过回调通知我们的, 而且消息的结构是一致的 根据上面的相关说明将服务端放置在自己的公网服务器也好,或者使用相关的 内网穿透工具 也好 (自行解决) 总之, 现在要有一个可以 访问我们 服务端项目的 公网地址 确保你自己的服务器可以使用公网地址访问到,并且成功返回数据同时确保: 必须有回调地址借口用来接收钉钉发送的消息 (本文示例地址:/ding/callback) 必须有一个接收免登授权码和企业corpId 来返回用户信息的接口 (本文示例地址:/ding/login ) 公网可以访问的服务端地址, 接收钉钉发给我们的消息(回调地址)如:http://ding.lnexin.cn/server/ding/callback,我们自己的登录地址,如:http://ding.lnexin.cn/server/ding/login 在钉钉开发者平台创建配置好的一个H5微应用 确保服务端的参数和微应用的基础信息一致 完成上述步骤,在客户端依旧是没有应用入口的,如: 下面需要在开发者平台进行授权最后能在钉钉上使用了 基本就是这样一个流程 如果感觉不太详细 点击下面链接看就可以 以上文章通过读 https://www.cnblogs.com/applerosa/p/11509512.html
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
出门问问与腾讯云小微平台怎么连接的
上一篇
2023-07-26
DNS 基础知识
下一篇2023-07-26
评论列表(0条)