源文件编译后的字节码是以CAFE BABY开头的二进制文件.需要JVM才能读懂.后缀为.class
一般来说,一个类对应一个字节码文件,内部类编译后也会生成一个单独的字节码文件.字节码文件是以类名来命名(标识)的.
一些相关的字节码文件可以按照包结构打包成jar文件.jar文件和zip文件差不多.
java程序一般都会依赖很多的jar文件,比如最基本的rt.jar.
第一段:免登问题
①如何在App及后台获取企业及用户相关信息
(1)微应用主页支持使用$CORPID$模板参数表示corpid,用户访问微应用的时候钉钉将把$CORPID$替换成用户所属企业的corpid,例如
可能的原因:
(1)如果其他应用正常,或者企业其他人打开应用没问题,可能是缓存问题引起,请清除下缓存
免登授权码是一次性的,团队(未认证的企业)失效时间五分钟
第二段:JSAPI问题
请先按照文档,先检查参数agentid传值是否正确,agentId查看方式:
(1)如果是isv应用,需要通过-获取企业的应用信息
JSAPI返回失败主要有两种错误
a.确认agentId参数正确传入
b.确认以传入agentId对应的企业身份获取过jsapi_ticket,也就是调用过get_jsapi_ticket方法
c.确认agentId对应的企业身份获取的jsapi_ticket没有过期.即在两个小时的有效期之内
b.oa后台设置uri和权限校验uri不一致(去掉hash部分)
c.确认获得的jsapi_ticket为最新的,没有其他服务同时调用get_jsapi_ticket方法,导致生成签名的jsapi_ticket过期
d.确认生成jsapi签名正确,可以使用debug工具进行调试
(1)请查看在dd.config的jsApiList中,是否已配置要使用的jsapi,未配置的话会报错
dd.ready一定要在dd.config之后执行
在页面需要引入js文件的前提下,通过url参数设置导航栏颜色,参数名为dd_nav_bgcolor
用户设备禁用了手机的定位功能
使用场景示例:用户在微应用中拉起本地聊天窗口列表(通过调用jsapi-获取会话信息),选择某一个聊天窗口,微应用将收到钉钉返回的cid,通过这个cid会送会话消息.
a.前提条件:jsapi可使用,即已经配置到dd.config,且通过jsapi的权限校验
b.通过jsapi获取会话cid,详见获取会话信息
在oa后台设置微应用首页地址(域名设置为可信域名,即可安全访问授权)
①.1.读取nfc芯片接口无法使用
[font=微软雅黑, 'Microsoft Yahei', 'Hiragino Sans GB', tahoma, arial, 宋体]目前nfc芯片接口只支持android(文档中已注明,请查看文档)
第三段:服务端API
管理通讯录的部分接口采用了POST请求,请求体使用JSON格式,请在HTTP请求头中设置Content-Type:application/json
使用multipart/form-data请求上传文件,需要附加文件标示信息,参数名为media;java示例代码为
HttpEntity requestEntity =MultipartEntityBuilder.create().addPart("media", new FileBody(file, ContentType.APPLICATION_OCTET_STREAM, file.getName())).build();
一个企业的一个套件,只能注册一个回调url
(1)调试调用接口过程中出现,请先确保是否是JSON格式错误,比如POST时有的JSON里缺少了这种括号[ ]
第四段:ISV接入问题
①开发者平台创建套件校验url有效性问题
a.可以通过将加密数据在本地解密下,看解密后的数据是否正确
b.查看是否是各字段名字错误,如timeStamp,却写成了timestamp
注册套件之后,钉钉服务器会向填写的回调接口推送suite_ticket;接收到推送之后需要返回加密后的字符串"success",如果不返回或返回错误,钉钉服务器将连续推送,直到推送次数超过100次,就不再推送;
在开发者平台,目前授权行为只能发起一次,如已经收到临时授权码,模拟测试企业发起授权行为,收到change_auth事件;
测试企业解授权功能近期会上线,请关注文档及论坛更新
临时授权码只能使用一次,使用后再次使用会提示"不存在的临时授权码"
目前没有办法获取,可以通过解除授权再次授权重新获取,解除授权功能暂时未开放,请在文档及论坛关注开放时间
b.如果打开正常,请联系钉钉值班同学反馈;
调用钉钉API的机器需要配置在开发者平台中配置白名单
①.1.如何解除开发者平台的钉钉账号绑定
暂未提供开发者平台、云市场与钉钉账号解绑功能,请关注官方文档及论坛,若提供会同步更新
ISV开发完成套件后,需要对微应用进行性能评测等(微应用性能评测),以及在钉钉应用市场进行上架后,才可被其他企业用户搜索到,并进行购买授权等操作;
如果在开发者后台勾选了邮箱字段,则可以获取用户的email;mobile暂不提供
(1)在 ENV文件中
public static final String SUITE_KEY = "";//已有套件时使用
dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env.SUITE_KEY);
第三个参数使用,如果首次创建校验url使用 Env.CREATE_SUITE_KEY,即
dingTalkEncryptor = new DingTalkEncryptor(Env.TOKEN, Env.ENCODING_AES_KEY, Env. CREATE_SUITE_KEY);
如果已有套件,使用Env.SUITE_KEY,且在ENV文件中将public static final String SUITE_KEY = "xxxx";赋值,即
第五段:通用问题
①isv接入demo
第六段:常见需求及建议回复
①发Ding的接口是否支持
钉钉不对外提供提供服务端ding接口
钉钉暂不开放公告接口
目前只提供了管理日历接口接入,详见管理日历接入指南;
其他暂未提供
(1)可以基于钉钉开放平台开发一个报表的微应用,钉钉提供免登机制获取用户信息,报表权限由你开发的微应用进行控制
以上实现均需开发微应用
是这样的.
你打开命令行窗口,然后输入 cd "Program Files",回车;
简单点,也可以输入cd P ,然后按Tab键,会给你自己补全的,要是你按了出来的不是 "Program Files",那你再按Tab,直到出来为止.
剩下的...就是JAVA的事了 ..