角度:我是一名企业内部的开发者,隶属XX企业的IT开发部,看到钉钉想把公司的部分业务的部分功能放在钉钉上跑。使用VB.NET开发,接触钉钉快一周了,除了文件上传花了点时间,其他的都很顺利。
问题:服务端开发文档中的注册事件回调接口究竟是给 企业自己的服务端使用还是给套件的开发者使用?
如果只是提供给套件的开发者使用,那么建议将其移动到"ISV接入指南"下(ISV下面已经有“回调接口相关内容”但并没有提到内容为“check_url”的事件类型)
如果都可以注册回调,那么问题来了...
下面是我注册回调的过程:
string CorpID=钉钉后台查看到的数据
string token =xxx //文档中说普通企业可以随机填写,后面貌似只有验证签名的时候用到
string aes_key=43位字符串
1、POST {call_back_tag,token,aes_key,url}等数据
2、收到服务器传来的数据 {"encrypt":"8kL6Ohqsdp+gvkMg9v0j4s8lycFcrUj6ll4XohSPMHmMl6ZDnXU4cFj/BYtGBLno9Ty0wiWyX9JEGx0DUGSHsSFf2YmDZQmxLP1Ys66cNvHP6FFp3ji3vcWPb+nix2de"}
3、解密服务器传来的数据 Cryptography.AES_decrypt(xxxx,aes_key,CorpID)得到服务器JSON 字符串 {"EventType" : "check_url"}
4、按要求加密字符串"success"
string jm= Cryptography.AES_encrypt("success", aes_key, CorpID)
5、按要求组合成JSON字符串
string str ={"msg_signature":"7a599a542cdc4eb99dd5e8f37967362c5bd55174","encrypt":"1ImNyZAkKDIKogVog9FhxcIT/fl8m3ttvKdYO/Ez+qP8tIl+GoBC5h72B0+I9Sp9Q9WrqIPHjZLw6cPqpCQw==","timeStamp":"1461729798","nonce":"835adeca"}
然后返回这段 retunr str
最后....第一步POST返回的结果是 '{"errcode":71009,"errmsg":"返回文本非success"}
---------------------------------------------------------------------------------------
仔细看了下文档
测试回调url(http://ddtalk.github.io/dingTalkDoc/?spm=a3140.7785475.0.0.0tSvEP#测试回调url)
例子中的返回值
{
"msg_signature":"111108bb8e6dbce3c9671d6fdb69d15066227608",
"timeStamp":"1783610513",
"nonce":"123456",
"encrypt":"1ojQf0NSvw2WPvW7LijxS8UvISr8pdDP+rXpPbcLGOmIBNbWetRg7IP0vdhVgkVwSoZBJeQwY2zhROsJq/HJ+q6tp1qhl9L1+ccC9ZjKs1wV5bmA9NoAWQiZ+7MpzQVq+j74rJQljdVyBdI/dGOvsnBSCxCVW0ISWX0vn9lYTuuHSoaxwCGylH9xRhYHL9bRDskBc7bO0FseHQQasdfghjkl"
}
这个和套件的返回值非常相似,不过要生成类似是不是需要用套件的方式生成?如果是的话那么用DingTalkCrypt就会少个参数suiteKey,这个貌似只有创建了套件才会有。用这个suite4xxxxxxxxxxxxxxx试了下也不行。
如果 Cryptography.AES_encrypt ("success", aes_key, CorpID) 可以使用的话,为什么返回JSON中会有msg_signature、timeStamp、nonce这些信息,如果要用套件的方式生成返回值有没有参数suiteKey,貌似我进入死循环了...
那么究竟要怎样才能返回符合要求的字符串了?请指点!!!!
-------------------------
-------------------------
你好,
1.注册回调事件,是可以用套件的身份来注册,也可以用企业的身份来注册
如果一个套件,有N家企业使用了这个套件,那么这个套件可以注册N个回调,来监听每家企业的数据变化
如果一家企业关心自己的数据在钉钉平台的变化,那么企业是可以用企业的身份来注册回调信息
2.关于加解密
如果是用套件身份来注册回调,那么加解密的参数Cryptography.AES_decrypt(xxxx,aes_key,CorpID),对应的CorpID就是suiteKey
如果用企业的身份来注册回调,那么加解密的参数Cryptography.AES_decrypt(xxxx,aes_key,CorpID),对应的CorpID就是企业的corpid
3.关于套件身份和企业身份的解释
套件身份来注册。就是调用register_call_back接口的时候,传入的accesstoken是企业授权的token
企业身份来注册,就是调用register_call_back接口的时候,传入的accesstoken是用企业corpid和corpsecret换取的token
-------------------------
-------------------------
-------------------------
-------------------------
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。