2013-03-18 28 views
8

Yanılmıyorsam, UrlFetch Documentation uyarınca Google Apps Komut Dosyası içinden New Basecamp API numaralı telefonu arayabileyim. Şaşkınlığımın biçimlendirici bir GAZ hatasıyla (ve tüm bunlara henüz başladığım gerçeğinden) kaynaklandığından şüpheleniyorum. Uzun zamandır googledim. Bu benim ne var ve hata ben GAS geri almak: GASGoogle Apps Komut Dosyası ve Harici API

renklendireceğinizi:

function myFunction() { 
    var url = "https://basecamp.com/******/api/v1/projects.json"; 
    var headers = { 
       "contentType": "application/json", 
       "headers":{ "User-Agent": "MY_APP_NAME", 
          "username:password" : "user:pass"}, 
       "validateHttpsCertificates" :false 
       }; 

var response = UrlFetchApp.fetch(url, headers); 
var text = response.getResponseCode(); 
Logger.log(text); 
} 

GAZ Hata Mesajı: ben bu makul bir sorudur umut ve teşekkür

Request failed for https://basecamp.com/2166446/api/v1/projects.json returned code 401. 
Server response: HTTP Basic: Access denied. (line 9, file "Code") 

yardım için. aşağıdaki gibi

cevap

15

Utilities.base64Encode yararlanır HTTP Basic Authentication için doğru başlık, şöyledir: Şaşırtıcı

"headers": { 
    "User-Agent": "MY_APP_NAME (App URL/your email address)", 
    "Authorization": "Basic " + Utilities.base64Encode(username + ":" + password) 
}, 
+0

! Teşekkürler! Harika çalışıyor –

+0

Bu bilginin olduğu site var, böylece öğrenebilir miyim? –

+1

@ mat10112: Bilgi her yerdedir. HTTP temel kimlik doğrulamasını kullanabileceğinizi belirttiğiniz, orijinal gönderiminizde API bağlantısıyla başladım. OAuth'dan daha kolay kullanıldığından, HTTP temel kimlik doğrulaması için kullanılacak tam üstbilgiyi iki kez kontrol etmek için Wikipedia'ya gittim. Daha sonra, bazı uygulama içi yardımcı programların olduğunu bildiğimden, [App Script API] sayfasını (https://developers.google.com/apps-script/) dokümantasyon sayfasına teslim ettim. Sonra sadece bir araya getirdim. –

İlgili konular