1
我想獲取域中所有用戶的日曆詳情。我試圖通過使用UrlFetchApp併發送請求到服務器來做到這一點。如何從存儲在變量中的HTML標記中獲取值?
var urlFetch = UrlFetchApp.fetch(url, fetchArgs);
我通過了所有必需的參數。但其給出302暫時移動服務器錯誤。有時它的工作,但並不總是。 爲了消除這個問題,我必須再次發送一個獲取請求到相同的內容和參數的服務器。當發送第一個獲取請求時,它返回一個url,一個會話ID被附加到它。 所以我需要發送一個請求與這個新的網址。
我用下面的代碼是:
function getCalender(){
var users = UserManager.getAllUsers();
var scope = 'https://www.google.com/calendar/feeds/';
var fetchArgs = googleOAuth_('calender', scope);
for(i=0;i<users.length;i++){
var url ='https://www.google.com/calendar/feeds/'+users[i].getEmail()+'/private/full';
try{
var urlFetch=UrlFetchApp.fetch(url,fetchArgs)
}
catch(err){
Logger.log(err)
}
}
}
function googleOAuth_(name,scope) {
var oAuthConfig = UrlFetchApp.addOAuthService(name);
oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
oAuthConfig.setConsumerKey("");
oAuthConfig.setConsumerSecret("");
return {oAuthServiceName:name,
oAuthUseToken:"always",
content:'application/atom+xml',
method:"GET",
Authorization:'GoogleLogin auth=?'};
}
當我打印ERR價值的給人:
Exception: Request failed for returned code 302. Server response: <HTML>
<HEAD>
<TITLE>Moved Temporarily</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Moved Temporarily</H1>
The document has moved <A HREF="https://www.google.com/calendar/feeds/<email-id>/private/full?gsessionid=y1oQCjGH3LqTKJgyh9BlhA">here</A>.
</BODY>
</HTML>
我想這個移動ID發送新網址的新請求。 請給我任何想法來解決這個問題!