开发者社区> 问答> 正文

无法调用上传图片接口

dd.ready(function() {
    $.ajax({//请求服务器后台,通过后台获取钉钉用户配置
        url : getRootPath()+"/dingtalk/getConfig.do?agent=answer",
        type : "GET",
        dataType : "json",
        success : function(data1) {
            dd.config({
                agentId: data1.agentId,
                corpId: data1.corpId,
                timeStamp: data1.timeStamp,
                nonceStr: data1.nonceStr,
                signature: data1.signature,
                jsApiList : [ 'runtime.info', 'biz.contact.choose',
        'device.notification.confirm', 'device.notification.alert',
        'device.notification.prompt', 'biz.ding.post',
        'biz.util.openLink' ]
            });
            dd.runtime.permission.requestAuthCode({
                corpId : data1.corpId,
                onSuccess : function(info) {
//                        alert('authcode: ' + info.code);
                    $.ajax({//通过code获取登录用户信息
                        url : getRootPath()+'/dingtalk/getUserInfo.do?code=' + info.code,
                        type : 'GET',
                        dataType : 'json',
                        success : function(data2) {
                            mainMethod(data2); //主方法,所有js脚本均要通过钉钉的配置验证才能启动
                        },
                        error : function(xhr, errorType, error) {
                            logger.e("yinyien:" + data1.corpId);
                            alert(errorType + ', ' + error);
                        }
                    });
                },
                onFail : function(err) {
                    alert('fail: ' + JSON.stringify(err));
                }
            });
        },
        error : function(xhr, errorType, error) {
            alert(errorType + ", " + error);
        }
    });
});

function mainMethod(data){
        $(".button").click(function(){
                   dd.biz.util.uploadImage({
                           multiple: false, //是否多选,默认false
                           max: 3, //最多可选个数
                  onSuccess : function(result) {
                              alert("图片上传成功");
                   },
                   onFail : function() {
                              alert("上传失败");
                   }
                   });
         });
}

以上是我的签名配置,所有方法写在mainMethod()之中,可以调用钉钉的弹窗接口,扫描二维码接口,但是调用不了上传图片的接口,返回的都是"上传失败",
签名的配置也写死试过,还是不行,请大神帮忙查找下问题,万分感谢!

展开
收起
zippo_正品 2016-08-18 17:40:09 6443 0
4 条回答
写回答
取消 提交回答
  • 2016-08-22 14:38:00
    赞同 展开评论 打赏
  • dd.config得比dd.ready先调用,并且请加上dd.error回调函数,看看有没有错误信息输出
    2016-08-21 20:51:54
    赞同 展开评论 打赏
  • 回 1楼injekt的帖子
    我在调试工具中是正常的,无论android设备还是ios设备都不行,我看论坛其他地方,有人说应该是吧dd.config放在dd.ready之前,我把dd.config抽取出来还是不行。测试android设备版本均在4.1以上,ios为9.*,钉钉版本为2.15.0

    -------------------------

    回 1楼injekt的帖子
    jsApiList里面的接口无法调用,基本接口能正常使用,应该是jsApiList配置没有起作用,但是不知道什么原因

    -------------------------

    Re无法调用上传图片接口
    dd.error返回信息有了,

    但是config请求的data1里的值都有的呀

    -------------------------

    Re无法调用上传图片接口
    已经解决了,ajax传输的request请求的地址与页面地址不一致,签名生成的方法signature = AuthHelper.sign(ticket, nonceStr, timeStamp, signedUrl);中signedUrl应当是当前页面的url地址
    2016-08-19 20:56:39
    赞同 展开评论 打赏
  • 您好,这个问题是出现在Android还是iOS设备?系统版本号是多少?钉钉版本号是多少?
    也用 http://wsdebug.dingtalk.com/调试工具试一下这个jsapi
    2016-08-18 21:27:06
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载