2014-04-10 29 views
0

在使用Google腳本向Basecamp API發佈新消息方面有一點幫助。Google腳本POST到Basecamp Classic API

我創建了一個功能,下面粘貼,但通過調試運行這個當我從大本營稱<title>屬性是空的,它是不是

<?xml version="1.0" encoding="UTF-8"?> <errors> <error>Title can't be blank</error> </errors> 

我已經試過同一職位的422響應通過Chrome中的「高級休息客戶端」,該帖子成功。

function postBasecampApi(endpoint, payload) { 

    var xml = ""+ 
    '<request>'+ 
     '<post>'+ 
     '<category-id>123890662</category-id>'+ 
      '<title>sting</title>'+ 
      '<body>testing</body>'+ 
       '</post>'+ 
       '<notify>test notify</notify>'+ 
        '</request>'; 

    var url = basecampCompleteUrl + '/projects/12029591/posts.xml'; 

    var headers = { 
    Authorization : 'Basic ' + Utilities.base64Encode(user + ':' + password) 
    } 
    var opt = { 
    'method': 'POST', 
    'payload': xml, 
    'headers' : headers 
    }; 

    var response = UrlFetchApp.fetch(url, opt); 

    return Xml.parse(response.getContentText(), false); 
} 

預先感謝任何幫助

回答

0

發現問題,取數據的Content-Type默認不是 '應用/ XML'。我增加了以下的選擇對象,一切運行良好

var opt = { 
    'contentType': 'application/xml', 
    'method': 'POST', 
    'payload': xml, 
    'headers' : headers 
}; 

它一文不值添加Content-Type的頭不起作用