求助:如何通过Python脚本重新加载Qlik Cloud应用
求助:Python脚本重新加载Qlik Cloud应用失败
我尝试通过Python脚本重新加载Qlik Cloud应用,但遇到了一些问题,以下是已尝试的方案,恳请提供解决方案:
- 尝试使用Qlik Reloads API:需携带应用ID、Partial参数及JSON Web Token(JWT)发起请求。我按照官方教程生成JWT并编写JavaScript测试代码,但未成功,代码如下:
const fs = require('fs'); const uid = require('uid-safe'); const jwt = require('jsonwebtoken'); const https = require('https') const payload = { jti: uid.sync(32), // 32字节随机字符串 sub: '(分配用户中显示的我的用户ID)', subType: 'user', name: '(我的用户名)', email: '(我的邮箱)', email_verified: true, }; const privateKey = fs.readFileSync("path/certificate.pem"); // 我不清楚‘kid和issuer必须与IDP配置匹配’的含义 // audience必须设置为qlik.api/login/jwt-session const signingOptions = { keyid: 'my-custom-jwt', algorithm: 'RS256', issuer: '(主机名)', audience: 'qlik.api/login/jwt-session', }; const myToken = jwt.sign(payload, privateKey, signingOptions); const qlikUrl = "(主机名)" const data = JSON.stringify({"appId": "(应用ID)", "partial": true}) const options = { hostname: qlikUrl, port: 443, path: '/api/v1/reloads', method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer '+ myToken } } https.request(options) req.write(data)
目前困惑:不清楚“kid和issuer必须与IDP配置匹配”的具体含义,不确定signingOptions中的keyid和issuer是否设置正确;另外代码中req变量未定义,请求也未完成发送与响应处理,这可能也是失败原因之一。
尝试使用Python的qsAPI库:对连接参数存在困惑,IDE提示需传入
qrs = qsAPI.QRS(proxy='hostname', user=('userDirectory', 'userId', 'password')),但不清楚userDirectory的含义及获取方式,仅猜测userId为映射用户中的ID。考虑通过用户证书认证,但不知道在Qlik Cloud中何处下载该证书。
内容的提问来源于stack exchange,提问作者Miquel Àngel Cabot Prats
相关产品推荐
相关产品推荐

