如何从Google App Script连接到Rally?

时间:2013-04-30 01:28:05

标签: google-apps-script rally

我正在尝试使用Google App脚本引擎将Rally功能添加到Google Apps Sheets。除了在尝试与Rally连接的Google Apps系统上的用户管理身份验证外,一切看起来都相当简单。谷歌的UrlFetchApp.fetch()函数似乎可以解决问题,除了Auth位。有什么建议吗?

function RallyQuery(sz, order, fetch, stylesheet)
{
  if (typeof fetch === "undefined"){ fetch = true; }
  if (typeof stylesheet === "undefined"){ stylesheet = "/slm/doc/webservice/browser.xslsz";}

  var result = "[null]";
  var query  = "https://rally1.rallydev.com/slm/webservice/1.42/task?query=" + sz 
             + "&order=" + order 
             + "&fetch=" + fetch 
             + "&stylesheet=" + stylesheet;

  result = UrlFetchApp.fetch(query);

  return result;
}

2 个答案:

答案 0 :(得分:2)

如果我理解正确,对于外部javascript Rally Apps,您需要使用LoginKey。此密钥必须绑定到只读(查看者)帐户(即帐户不能具有编辑者权限)。然而,这种方法存在一些安全问题(如链接所述)。

答案 1 :(得分:1)

根据this question的答案,集会网络服务使用基本身份验证。您应该检查web services documentation以验证它。 (我不是注册用户,所以我不能。)

以下是您的RallyQuery可以重构为包含基本身份验证的方式:

function RallyQuery(sz, order, fetch, stylesheet)
{
  if (typeof fetch === "undefined"){ fetch = true; }
  if (typeof stylesheet === "undefined"){ stylesheet = "/slm/doc/webservice/browser.xslsz";}

  var username = "USERNAME";
  var password = "PASSWORD";

  var result = "[null]";
  var url = "https://rally1.rallydev.com/slm/webservice/1.42/task"
  var options = {
      "query" : sz, 
      "order" : order, 
      "fetch" : fetch, 
      "stylesheet" : stylesheet,
      "headers": {
          "Authorization": "Basic "
              + Utilities.base64Encode(username + ":" + password)
                 }
    }
  result = UrlFetchApp.fetch(url,options);

  return result;
}

或者,您可能需要查看LoginKey