开发者社区> 问答> 正文

服务窗免登陆程序,错误码52011


                 官方网站一直没有服务窗的免登陆程序, 按照我们内部员工免登陆程序的理解;
1.通过corpid和服务窗channel_secret获取到 ChannelToken
  获取接口为:https://oapi.dingtalk.com/channel/get_channel_token?corpid=CORPID&channel_secret=CHANNEL_SECRET

2. 通过channelToken获取客户的ticket
https://oapi.dingtalk.com/channel/get_channel_jsapi_ticket?access_token=CHANNELCORPTOKEN

第三步:在钉钉手机端通过 dd.runtime.permission.requestAuthCode获取到Code信息

第四步,通过code获取到登录者的信息;
接口https://oapi.dingtalk.com/channel/user/get_by_code?access_token=CHANNEL_TOKEN&code=CODE

问题1: 不知道以上思路是否正确????
  var _config = {
            agentId: '160550',
            corpId: 'ding9d29cf0b26970fba',
            timeStamp: '1477492860',
            nonceStr: '6FR2MKWd',
            signature: '61d5fea12e897ac78a561471fa9d7f9fc5c35591'
        };


现在在第三步出现了问题,
我使用dd.config时, 出现错误,

                   nonceStr = Helper.randNonce();
                    timestamp = Helper.timeStamp();
                    url = Request.Url.ToString();
                    jsApiTicket = TokenUtil.getchanneljsapiticket(corpId, channeltoken); // Ticket是正确的
          
                    string string1 = "jsapi_ticket={0}&noncestr={1}&timestamp={2}&url={3}";
                    string1 = string.Format(string1, jsApiTicket, nonceStr, timestamp, url);
                    signature = FormsAuthentication.HashPasswordForStoringInConfigFile(string1, "SHA1").ToLower();


请问该怎么处理? 是不是服务窗免登录还没有真正开放?? 求解决

展开
收起
ileven 2016-10-26 14:56:36 6199 0
7 条回答
写回答
取消 提交回答
  • Re服务窗免登陆程序,错误码52011
    惨痛经历,企业自建服务窗应用,首先获取jsapi_ticket使用的access_token,是根据cropId和cropSecrit来获取的,而不是channelSecrit。获取tick的方式为 "https://oapi.dingtalk.com/get_jsapi_ticket?type=1&access_token=ACCESS_TOKEN.在前端js中,agentId要替换成agentid,不然会报错。PS:当前"http://g.alicdn.com/ilw/ding/0.9.2/scripts/dingtalk.js"

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

    Re服务窗免登陆程序,错误码52011
    惨痛经历,企业自建服务窗应用,首先获取jsapi_ticket使用的access_token,是根据cropId和cropSecrit来获取的,而不是channelSecrit。获取tick的方式为 "https://oapi.dingtalk.com/get_jsapi_ticket?type=1&access_token=ACCESS_TOKEN.在前端js中,agentId要替换成agentid,不然会报错。PS:当前"http://g.alicdn.com/ilw/ding/0.9.2/scripts/dingtalk.js"
    2017-04-15 09:58:45
    赞同 展开评论 打赏
  • Re服务窗免登陆程序,错误码52011
    dd.config({
                        agentId: appid,
                        corpId: corpid,
                        timeStamp: timestamp,
                        nonceStr: noncestr,
                        signature: sign,
                        type: 1,
                        jsApiList: ddapi.jsapiList
                    });     //  config 就报错  无法获取Jsapi ticket  所以无法用jsapi接口获取code

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

    Re服务窗免登陆程序,错误码52011
    现在可以获取服务窗关注者免登资料 但是只能用企业内部应用ID和type0获取成功
    2016-11-04 20:40:22
    赞同 展开评论 打赏
  • 你好,服务窗免登在获取code的时候请用dd.channel.permission.requestAuthCode
    2016-11-04 16:09:46
    赞同 展开评论 打赏
  • 回 5楼君信的帖子
    我这里提示无效的agentid,可以确认corpid,agentid都是对的,接口调用的也是楼主所说,我也加上了type:!
    2016-11-04 16:06:54
    赞同 展开评论 打赏
  • Re服务窗免登陆程序,错误码52011
    有兴趣地话可以试试我们的免登模板,无需代码话,全部都是基于界面配置完成
    2016-10-27 10:02:21
    赞同 展开评论 打赏
  • dd.config({
        agentId: '', // 必填,微应用ID
        corpId: '',//必填,企业ID
        timeStamp: , // 必填,生成签名的时间戳
        nonceStr: '', // 必填,生成签名的随机串
        signature: '', // 必填,签名
        type:0/1,   //选填。0表示微应用的jsapi,1表示服务窗的jsapi。不填默认为0。该参数从dingtalk.js的0.8.3版本开始支持
        jsApiList : [ 'runtime.info', 'biz.contact.choose',
            'device.notification.confirm', 'device.notification.alert',
            'device.notification.prompt', 'biz.ding.post',
            'biz.util.openLink' ] // 必填,需要使用的jsapi列表,注意:不要带dd。
    });


    服务窗开发需要传一个type参数

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

    这个地方你们自己查一下,意思就是当前员工的userid和你当前corpid对不上

    2016-10-26 19:53:21
    赞同 展开评论 打赏
  • Re服务窗免登陆程序,错误码52011

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

    回 2楼君信的帖子
    但是提示不是内部员工呢? 这个是怎么回事呢?

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

    回 5楼君信的帖子
    问题就是这个啊, 关键我是显示和外部联系人进行免登录, 通过服务窗进行登陆, 这个外部联系人也不并一定说公司的员工呢, 员工登陆是没有问题, 现在是外部联系人通过服务窗进行免登陆
    2016-10-26 14:58:33
    赞同 展开评论 打赏
滑动查看更多
问答地址:
问答排行榜
最热
最新

相关电子书

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