开发者社区> 问答> 正文

关于PC端open一个浏览器窗口的问题

首先要写一下我的目标:我现在想通过pc端的应用,点击一个应用,然后弹出一个百度的浏览器窗口,即:PC端钉钉——工作——测试(应用名称)——浏览器打开百度窗口。
问题:我后台是用的java,现在出现的问题就是应用以后没反应,后台不报错,观察错误日志是说getJSAPIMethods失败,错误码:52013.
前台代码:

      alert(config.agentid+"++"+config.corpId+"++"+config.timeStamp+"++"+config.nonceStr+"++"+config.signature);
                  DingTalkPC.config({
                      agentId: config.agentid, // 必填,微应用ID
                      corpId: config.corpId,//必填,企业ID
                      timeStamp: config.timeStamp, // 必填,生成签名的时间戳
                      nonceStr: config.nonceStr, // 必填,生成签名的随机串
                      signature: config.signature, // 必填,签名
                      jsApiList: ['biz.util.openLink'] // 必填,需要使用的jsapi列表
                  });
                  
                  console.log("2");
                  DingTalkPC.ready(function(res){
                      DingTalkPC.biz.util.openLink({
                          url:"http://www.baidu.com",
                          onSuccess : function(result) {
                               alert("1234");
                          },
                          onFail : function(err) {
                               console.log(err)
                              alert(JSON.stringify(err));
                          }
                      });
                  });
                  
                  DingTalkPC.error(function(err){
                      console.log(err)});


后台输出:{jsticket:'KcE8i1dJ9OCoJSZqUf1kY1ZGSFy0VuYNLRLdLaJDEF1CfTnXtwogHANuLGHJwvwE43AIpXPM4rb5Kww2WUj5JK',signature:'b08192d5a41d429a42966cc126bd046c090e0abf',nonceStr:'abc',timeStamp:'1467601168',corpId:'dingf4b2eaf548******',agentid:'2796****'}(后台是调用demo里的AuthHelper.getConfig方法)
求大神帮助

展开
收起
拉着猪逛街 2016-07-04 11:11:46 10136 0
4 条回答
写回答
取消 提交回答
  • Re关于PC端open一个浏览器窗口的问题
    引用第5楼粒尘于2016-07-04 12:18发表的  :
    52013错误码的意思是  签名校验失败

    如果你是在微应用内部调用jsapi,请检查是否有按照下述步骤进行操作来生成签名
    http://g.alicdn.com/dingding/opendoc/docs/_pc/tab11.html?t=1467363848242#js-api权限签名算法 [url=https://bbs.aliyun.com/job.php?action=topost&tid=287390&pid=801735][/url]


    不得不说这个签名步骤真的是没用,表述不清楚,特别是第一步,参数排序,nodejs 的demo里面没看到调用排序算法的程序,而是直接构造的值对串。。。。
    2016-07-04 23:26:29
    赞同 展开评论 打赏
  • Re关于PC端open一个浏览器窗口的问题
    我也遇到这个问题了。不过我的语言是php。不知道是什么原因,你现在解决了吗?

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

    回 8楼粒尘的帖子
    DingTalkPC.biz.util.openLink接口!  配置config都是正确的......

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

    回 11楼粒尘的帖子
    那不就得了,就一个url参数,但是不行,再钉钉客户端,无法将网页的在浏览器打开,写配置正确,是因为还有其他功能,解释下,其他没有错误.....   那这个怎么解决啊

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

    回 13楼粒尘的帖子
    不是,我也有疑问,那为什么,像爱客crm这样的系统,从钉钉的微应用打开后,会是在浏览器中打开呢

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

    回 13楼粒尘的帖子
    能否指教下,我现在做项目,急,谢谢啦
    2016-07-04 14:39:54
    赞同 展开评论 打赏
  • Re关于PC端open一个浏览器窗口的问题
    引用第1楼粒尘于2016-07-04 11:20发表的  :
    jsapi是由钉钉容器提供的,外部独立浏览器是无法访问到钉钉专用jsapi的。 [/url]

    我是从钉钉上打开一个浏览器,不是从浏览器打开钉钉,就像那个tower任务一样~~API上是有这种的[url]http://g.alicdn.com/dingding/opendoc/docs/_pc/tab6.html?t=1467363848530

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

    Re关于PC端open一个浏览器窗口的问题
    引用第3楼粒尘于2016-07-04 11:30发表的  :
    你是希望在外部浏览器中访问jsapi吗? [url=https://bbs.aliyun.com/job.php?action=topost&tid=287390&pid=801713][/url]

    不是啊,内部访问,然后链接到外部,相当于点击内部容器然后打开浏览器新打开一个链接~~

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

    Re关于PC端open一个浏览器窗口的问题
    引用第5楼粒尘于2016-07-04 12:18发表的  :
    52013错误码的意思是  签名校验失败

    如果你是在微应用内部调用jsapi,请检查是否有按照下述步骤进行操作来生成签名
    http://g.alicdn.com/dingding/opendoc/docs/_pc/tab11.html?t=1467363848242#js-api权限签名算法 [url=https://bbs.aliyun.com/job.php?action=topost&tid=287390&pid=801735][/url]

    貌似那个接口有问题,我再群里还发现了几个人也是这错误,用你们的后台demo调你们的接口报52013,很神奇的一个事情,如果是我们写错了,那也得给我们个前台demo或者是说明什么的,现在什么也没有

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

    回 8楼粒尘的帖子
    DingTalkPC.biz.util.openLink ,接口传了{jsticket:'nuLIbvlYCuMy6ibPMfEqFf2uB67YreL57BOtYV0027eoiIj9CqM7krmQPx1AF23fVRzHGBXaI93y0QKzV62hlK',signature:'3264ae6b53620418dcf3aaaf0dad2235dac742cd',nonceStr:'nuotai',timeStamp:'1467618313',corpId:'dingf4b2eaf548******',agentid:'27963***'} 然后报52013错误 我一楼写的很清楚了,又写了一遍~~~~

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

    回 11楼粒尘的帖子
    很显然是不对的,因为也是你们的人说的,要成功的使用DingTalkPC.biz.util.openLink接口必须用到回调接口,后来我看了API确实是这样说的,就是说要先进行配置,即,使用 DingTalkPC.config接口进行申请配置,然后使用回调接口DingTalkPC.ready才能生效,问题是使用了以后就会报52013这个错误,这个是钉钉-云际说的,但是他没给我解决这个52013的问题,我想问问其他人有遇到过么~结果你又告诉我可以直接调用~~

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

    回 11楼粒尘的帖子
    我还是想知道 https://bbs.aliyun.com/read/272339.html 这个最后是怎么解决的,很显然这个不仅仅发送在PC端,客户端也有这种问题,但是上个帖子是PHP的,我想问java有遇到这个问题的么?

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

    Re关于PC端open一个浏览器窗口的问题
    我来最后说一下这个问题的解决办法:删除项目中的path:Permanent_Data\accesstoken.xml abs path:D:\datacenter\Permanent_Data\accesstoken.xml
    path:Permanent_Data\jsticket.xml abs path:D:\datacenter\Permanent_Data\jsticket.xml 这两个文件(因为这个两个文件会记录你申请的jsticket),然后可能会造成重复注册,亦或者是其他原因,所造成的jsticket的错误,从而影响jsticket的授权教研,在此多谢 武佩锋同学的帮助,写下这些东西也让以后犯同样错误的童鞋避免。
    2016-07-04 11:24:31
    赞同 展开评论 打赏
  • jsapi是由钉钉容器提供的,外部独立浏览器是无法访问到钉钉专用jsapi的。

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

    你是希望在外部浏览器中访问jsapi吗?

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

    52013错误码的意思是  签名校验失败

    如果你是在微应用内部调用jsapi,请检查是否有按照下述步骤进行操作来生成签名
    http://g.alicdn.com/dingding/opendoc/docs/_pc/tab11.html?t=1467363848242#js-api权限签名算法

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

    回 6楼(拉着猪逛街) 的帖子
    请描述清楚,在什么时间,调用了钉钉的哪个接口(接口名字),传了什么样的参数,返回了什么样的值。

    光从你前面描述的信息,我还无法准确的答复你。

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





    DingTalkPC.biz.util.openLink  这个接口只需要一个参数url,不需要你帖子里写的那些参数哦。

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

    回 12楼(青羽~~~) 的帖子
    你和【拉着猪逛街】是同一个人吗?

    你们的问题可能只是表象类似,实际并不一样,如果你也有问题,麻烦详细描述一下。

    另外你提到的是在【客户端】而不是【PC端】,对吧?
    客户端里是不支持这个jsapi方法的。
    2016-07-04 11:20:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
WEB浏览器中即将发生的安全变化 立即下载
基于浏览器的实时构建探索之路 立即下载
基于浏览器的实时构建探索之路--玄寂 立即下载