开发者社区> 问答> 正文

调用DingTalkPC.runtime.permission.requestOperateAuthCode 时发生了错误

在钉钉中创建的微应用,在PC端界面调用 runtime.permission.requestOperateAuthCode 时发生了错误,错误信息如下:

错误码:7
错误信息:API not authed
返回错误对象如下:
Object:{
errorCode: "7",
errorMessage: "API not authed"
}


具体的操作步骤是:
1.从钉钉PC端工作台进入微应用,先打开其它界面进行页面操作,再切换到当前调用runtime.permission.requestOperateAuthCode 的页面,执行导入文件时,报上述错误信息;
2.如果进入工作台之后直接点击进入调用runtime.permission.requestOperateAuthCode 的页面执行导入文件,则能正常取到AuthCode,功能可正常运行。

已做过调试,在会报错的情况下ddConfig.corpId, ddConfig.agentId取值均能正常取到,请各位大神帮忙看看具体问题会出现在哪?谢谢~

代码如下:
    public static getDDAuthCodeForMessageAsync() {
        return new Promise((f, r) => {
            if (!this.isJSAPIAvailable()) {
                f(null);
            } // 如果客户端钉钉对象不可用(可能是浏览器),则直接返回成功
            else {
                const ddConfig = userInfo.getDDConfig();
                this.getTempAuthCodeAsync(ddConfig.corpId, ddConfig.agentId)
                    .then(authCode => {
                        f(authCode);
                    })
                    .catch(err => {
                        r(err);
                    });
            }
        });
    }

    // 通过corpId和agentId从DingTalkPC.runtime中拿到临时授权码,用于发送消息
    public static getTempAuthCodeAsync(corpId, agentId) {
        return new Promise((f, r) => {
            DingTalkPC.runtime.permission.requestOperateAuthCode({
                corpId,
                agentId,
                onSuccess: result => {
                    f(result.code);
                },
                onFail: err => {
                    r(err);
                }
            });
        });
    }

展开
收起
古月丫丫 2018-09-18 10:39:53 5919 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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