使用API​​密钥嵌入应用程序

时间:2014-10-09 23:45:56

标签: rally

我正在尝试按照https://help.rallydev.com/apps/2.0rc3/doc/#!/guide/embedding_apps中的说明使用alm-wsapi-read-only API密钥。我使用rally-app-builder创建了一个简单的缺陷查询应用程序。当我退出Rally时,我尝试使用Chrome浏览器中的以下语法查看缺陷网格,我在其中插入apiKey代替“key here”:

file:/// C:/ProjectWork/RallyGitHub/rally-app-defect-metrics/deploy/App-external.html?apiKey =“key here”

加载此页面时会询问我的Rally登录凭据,而不是默认为嵌入在API密钥中的Rally用户。

我正在做错的任何帮助?

此文件中的应用代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>DefectMetrics</title>

    <script type="text/javascript" src="https://rally1.rallydev.com/apps/2.0rc3/sdk.js"></script>

    <script type="text/javascript">
        Rally.onReady(function () {
            Ext.define("CustomApp",{extend:"Rally.app.App",componentCls:"app",launch:function(){Rally.data.ModelFactory.getModel({type:"Defect",success:function(model){this.grid=this.add({xtype:"rallygrid",model:model,columnCfgs:["FormattedID","Name","State","Owner"],storeConfig:{filters:[{property:"State",operator:"=",value:"Closed"}]}})},scope:this})}});

        Rally.launchApp('CustomApp', {
            name:"DefectMetrics",
            parentRepos:""
        });
    });
</script>
</head>
<body>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

通过file:// URL访问时,AppSDK2.0rc3应用程序使用JSONP:

File URL screenshot

这不允许在请求标头中设置API密钥,因此您可以通过基本身份验证提示您输入凭据。

当按Embedding Apps help document中所述运行rally-app-builder run时,您正在通过node.js服务器运行,允许AppSDK2使用CORS,并且可以根据需要设置apiKey。请求标题为Rally。

请注意rally-app-builder run最初会显示:

http://localhost:1337/App-debug.html

在您的默认浏览器中,它会提示您输入凭据。但是,如果您手动将api密钥附加到URL:

http://localhost:1337/App-debug.html?apiKey=_m9XjyrgVQ6

并刷新,应用程序将呈现而无需输入凭据。