开发者社区> 问答> 正文

调用dd.biz.contact.choose失败

配置通过,没有报错  
dd.config({
                agentId : agentid,
                corpId : corpId,
                timeStamp : timeStamp,
                nonceStr : nonceStr,
                signature : signature,
                jsApiList : [ 'runtime.info', 'biz.contact.choose',
                        'device.notification.confirm', 'device.notification.alert',
                        'device.notification.prompt', 'biz.ding.post',
                        'biz.util.openLink' ]
            });




    dd.error(function(err) {
        alert('dd error: ' + JSON.stringify(err));
    });


根据开发文档 查看的方法  自定义了person()方法:

function person(){
    dd.biz.contact.choose({
          startWithDepartmentId: -1, //-1表示打开的通讯录从自己所在部门开始展示, 0表示从企业最上层开始,(其他数字表示从该部门开始:暂时不支持)
          multiple: true, //是否多选: true多选 false单选; 默认true
          users: [], //默认选中的用户列表,userid;成功回调中应包含该信息
          disabledUsers:[],// 不能选中的用户列表,员工userid
          corpId: corpId, //企业id
          max: 10, //人数限制,当multiple为true才生效,可选范围1-1500
          limitTips:"最多只能选择10人", //超过人数限制的提示语可以用这个字段自定义
          isNeedSearch:true, // 是否需要搜索功能
          title : "选择负责人", // 如果你需要修改选人页面的title,可以在这里赋值
          local:"false", // 是否显示本地联系人,默认false
          onSuccess: function(data) {
              alert("成功");
              alert(data)
          //onSuccess将在选人结束,点击确定按钮的时候被回调
          /* data结构
            [{
              "name": "张三", //姓名
              "avatar": "http://g.alicdn.com/avatar/zhangsan.png" //头像图片url,可能为空
              "emplId": '0573', //userid
             },
             ...
            ]
          */
          },
          onFail : function(err) {
              alert("失败");
              alert(err);
          }
        });
}
显示调用失败了....
麻烦大家有空帮忙看一下,这个问题可能是出在哪里?
先谢谢了

展开
收起
ariesm 2016-12-15 17:58:21 5943 0
4 条回答
写回答
取消 提交回答
  • 看下我们的接入文档,所有的方法调用都要放到ready里面。如果放到ready里面没有反应,请看dd.error是否有错误信息回调 https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.rPl40A&treeId=171&articleId=104910&docType=1
    2017-01-03 21:01:37
    赞同 展开评论 打赏
  • Re调用dd.biz.contact.choose失败
    请问一下你的问题解决了吗
    2016-12-31 23:49:32
    赞同 展开评论 打赏
  • 这个person方法,有放在dd.ready里吗

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

    放在dd.ready里没反应?alert没有出来吗

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

    agentid是必填项,如果放在dd.ready里有报错,要检查下语法问题,正常来看,是应该要放在dd.ready里的

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

    问题还没有解决吗,能找到在dd.ready里,pp方法找不到的原因吗

    2016-12-16 10:56:06
    赞同 展开评论 打赏
  • Re调用dd.biz.contact.choose失败
    我把json打印出来
    jsapi Should NOT Call,selectorString=choose:to,errorCode:7

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

    Re调用dd.biz.contact.choose失败
    没有放在dd.ready里面 在ready之后 我尝试过放在ready中 没有反应
    var corpId="";
    $(function(){
        var agentid =  $("#agentid").val();
        corpId =  $("#corpId").val();
        var timeStamp =  $("#timeStamp").val();
        var nonceStr =  $("#agentid").val();
        var signature =  $("#agentid").val();
        
        dd.config({
                    agentId : agentid,
                    corpId : corpId,
                    timeStamp : timeStamp,
                    nonceStr : nonceStr,
                    signature : signature,
                    jsApiList : [ 'runtime.info', 'biz.contact.choose',
                            'device.notification.confirm', 'device.notification.alert',
                            'device.notification.prompt', 'biz.ding.post',
                            'biz.util.openLink' ]
                });


        dd.error(function(err) {
            alert('dd error: ' + JSON.stringify(err));
        });

        dd.ready(function() {
            dd.biz.navigation.setTitle({
                title: '考核管理',
                onSuccess: function(data) {
                },
                onFail: function(err) {
                    log.e(JSON.stringify(err));
                }
            });
    //         alert('dd.ready rocks!');

            dd.runtime.info({
                onSuccess : function(info) {
                    logger.e('runtime info: ' + JSON.stringify(info));
                },
                onFail : function(err) {
                    logger.e('fail: ' + JSON.stringify(err));
                }
            });
            dd.ui.pullToRefresh.enable({
                onSuccess: function() {
                },
                onFail: function() {
                }
            })

            dd.biz.navigation.setMenu({
                backgroundColor : "#ADD8E6",
                items : [
                    {
                        id:"此处可以设置帮助",//字符串
                    // "iconId":"file",//字符串,图标命名
                      text:"帮助"
                    }
                    ,
                    {
                        "id":"2",
                    "iconId":"photo",
                      "text":"我们"
                    }
                    ,
                    {
                        "id":"3",
                    "iconId":"file",
                      "text":"你们"
                    }
                    ,
                    {
                        "id":"4",
                    "iconId":"time",
                      "text":"他们"
                    }
                ],
                onSuccess: function(data) {
                    alert(JSON.stringify(data));

                },
                onFail: function(err) {
                    alert(JSON.stringify(err));
                }
            });

            dd.runtime.permission.requestAuthCode({
                corpId : $("#corpId").val(),
                onSuccess : function(info) {
    //                alert('authcode: ' + info.code);
                    $.ajax({
                        url : 'userinfo.html?code=' + info.code + '&corpid='+ $("#corpId").val(),
                        type : 'POST',
                        success : function(data, status, xhr) {
                            var info = JSON.parse(data);
                            document.getElementById("userName").innerHTML = info.name;
                            document.getElementById("userId").innerHTML = info.userid;
                            window.location.href= 'toLogin.html?name='+info.name+'&mobile='+info.mobile+'&userId='+info.userid;
                            // 图片
    //                        if(info.avatar.length != 0){
    //                            var img = document.getElementById("userImg");
    //                            img.src = info.avatar;
    //                                      img.height = '100';
    //                                      img.width = '100';
    //                          }

                        },
                        error : function(xhr, errorType, error) {
                            alert(errorType + ', ' + error);
                        }
                    });

                },
                onFail : function(err) {
                    alert('fail: ' + JSON.stringify(err));
                }
            });
        });
    });
    function pp(){
        alert(corpId);
        dd.biz.contact.choose({
              startWithDepartmentId: 0, //-1表示打开的通讯录从自己所在部门开始展示, 0表示从企业最上层开始,(其他数字表示从该部门开始:暂时不支持)
              multiple: true, //是否多选: true多选 false单选; 默认true
              users: [], //默认选中的用户列表,userid;成功回调中应包含该信息
              disabledUsers:[],// 不能选中的用户列表,员工userid
              corpId: corpId, //企业id
              max: 10, //人数限制,当multiple为true才生效,可选范围1-1500
              limitTips:"最多只能选择10人", //超过人数限制的提示语可以用这个字段自定义
              isNeedSearch:true, // 是否需要搜索功能
              title : "选择负责人", // 如果你需要修改选人页面的title,可以在这里赋值
              local:"true", // 是否显示本地联系人,默认false
              onSuccess: function(data) {
                  alert("成功");
                  alert(data)
              //onSuccess将在选人结束,点击确定按钮的时候被回调
              /* data结构
                [{
                  "name": "张三", //姓名
                  "avatar": "http://g.alicdn.com/avatar/zhangsan.png" //头像图片url,可能为空
                  "emplId": '0573', //userid
                 },
                 ...
                ]
              */
              },
              onFail : function(err) {
                  alert(err);
              }
            });
    }
    还有 请问版主 我这个下载的javademo  定义的agentid="" 这样验证都是可以通过的 但是如果我加上企业的应用的agentid就无法通过验证
    调用jsapi需要agentid吗

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

    Re调用dd.biz.contact.choose失败
    ready中dd.runtime.permission.requestAuthCode执完成 跳转的我给注销了
    页面已经显示出来用户名和id了
    执行pp方法时候 alert(corpId)也没错 然后就变成:
    jsapi Should NOT Call,selectorString=choose:to,errorCode:7

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

    Re调用dd.biz.contact.choose失败
    引用的js
    https://g.alicdn.com/ilw/ding/0.9.2/scripts/dingtalk.js
    ios10  钉钉版本3.2.0

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

    Re调用dd.biz.contact.choose失败
    安卓端 钉钉开发者版本显示 requestJsAPis() not invoked errorCode:7
    这个确实实在config之后做的 因为页面demo 的userid和name都已经打印出来了

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

    Re调用dd.biz.contact.choose失败
    没有出来..放在里面就没反应了.说没有定义pp()这个方法.这个是不是和签名有关系呢?

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

    Re调用dd.biz.contact.choose失败
    这个是不是和agentid有关系
    我是下载官方的demo  应该是验证成功的了 不然会不会获取用户的信息
    但是官方demo agenti定义的是空字符串.我这个是企业应用开发 我看官方文档 是需要agentid的
    但是不写的话 也是获取到用户了 跟这个有关系吗
    麻烦版主了~~~

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

    Re调用dd.biz.contact.choose失败
    应该和他这个问题是一样的 但是最后没有给出怎么解决的
    https://bbs.aliyun.com/read/285910.html?spm=5176.bbsr285910.0.0.C8IIZ1&fpage=4&page=2

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

    Re调用dd.biz.contact.choose失败
    2016-12-15 22:34:30
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Customer Success Dashboard GoD 立即下载
Customer Success Dashboard GoDaddy Business Score 立即下载
Well-That-Escalated-Quickly-How-Abusing-The-Docker-API-Led-To-Remote-Code-Execution-Same-Origin-Bypass-And-Persistence 立即下载