一、
ISV的
开端
,
permanent_code
只能获取一次
,如果
丢失(
没有及时存起来)
的话
,
就意味着
彻底失败
。
这个问题文档里也提到了,说是后续会优化逻辑。
首先
这是个问题,还是一开头就遇见的问题。
然而这么长时间过去了,貌视
设计者
也不是很急着解决的样子。为什么呢?
阅读文档会发现设计者的逻辑:获取到
permanent_code
后,把
permanent_code存入数据库,然后立即激活套件
。——
获取后立马存取,按这样
逻辑
确实是不怎么担心
permanent_code会丢失的。
然而实际开发中会发现:只存个
permanent_code是没什么用的,还得再用
permanent_code去获取企业信息,其中agent信息是必须的。不然没有agentId
企业也
没法用。
我的
逻辑
是:
1、回调服务器收到tmp_auth_code后,
调用
钉钉
获取永久授权码接口 获取
permanent_code
和
corpid
。
2、用corpid和permanent_code调用钉钉
获取企业授权的授权数据接口 获取企业信息和
agent信息。
3、把
permanent_code和
企业信息合并存入数据库,把
agent信息
存入
数据
库
。
4、激活套件。
返回success。
按
我的
逻辑
多调用一次钉钉接口,至少多存一次库,
permanent_code
丢失机率大大增加了
。这个
permanent_code只能获取一次
的问题就变得突显起来。
还请设计者不要偷懒,希望尽快优化这一块逻辑。
二、回调服务器change_auth事件,钉钉方面只给传过来个authCorpId,
我套件里有20个微应用,
没有agentId怎么知道是哪个应用被取消了?
目前只有获取
单一应用
接口,现在只能遍历调用20次接口来查哪个应用变更了。
解决方法:change_auth事件时,推送个agentId过来。
-------------------------
"agent":[{
"agent_name":"aaaa",
"agentid":1,
"appid":-3,
"logo_url":"http://aaaaaa.com"
}
,{
"agent_name":"bbbb",
"agentid":4,
"appid":-2,
"logo_url":"http://vvvvvv.com"
}]
想问下您第三步:存agent相关信息是怎样存的呢? 官方文档说明(
获取企业授权的授权数据
[font='Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif]get_auth_info)里面给出的是一个数组,是不是 一个企业对某个套件授权,该套件下有多个应用,这个 agent 信息就是返回的 多个应用的相关信息? 存入数据库的时候是不是也要把 agentid 和 appid 都存起来,后期调用JS-api 的时候要用到 agentid, 但是没有给出 appid, 怎样获得正确的 agentid 呢?
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。