2013-04-30 61 views
1

我正在嘗試使用Google App腳本引擎爲Google Apps表添加拉力賽功能。除了在試圖與Rally連接的Google Apps系統上管理用戶的身份驗證外,一切看起來相當簡單。除了Auth位之外,Google的UrlFetchApp.fetch()函數似乎也能做到這一點。有什麼建議麼?如何從Google App腳本連接到拉力賽?

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; 
} 
+0

你是什麼意思「似乎做伎倆」?您能否發現您遇到的特定錯誤或問題? – TronicZomB 2013-04-30 01:51:00

回答

1

根據對this question的回答,rally webservice使用基本認證。你應該檢查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

+0

Mogsdad - 這很棒。謝謝!至於登錄密鑰,拉力賽正在更新他們的API,2.0版本不支持密鑰,但將在不久的將來。所以,雖然它對我沒有用處,但任何在幾個月內發現此問題的人都可能想要考慮這種可能性。 – CJM 2013-04-30 22:56:46

2

如果我理解正確,對於外部JavaScript Rally應用程序,您將需要使用LoginKey。該密鑰必須與只讀(查看器)帳戶綁定(即帳戶不能擁有編輯權限)。然而,這種方法存在一些安全問題(如鏈接所述)。

相關問題