如何从存储在变量中的HTML标记中获取值?

时间:2012-09-29 14:58:19

标签: html xml google-apps-script

我想获取域中所有用户的日历详细信息。我正在尝试使用UrlFetchApp并将get请求发送到服务器。

var urlFetch = UrlFetchApp.fetch(url, fetchArgs);

我为此传递了所有必需的参数。但它提供 302 Moved Temporarily 服务器错误。有时它的工作但不总是。 要删除此问题,我必须再次向具有相同内容和参数的服务器发送get请求。当发送第一个获取请求时,它返回一个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=?'};
}

当我打印错误值时,它会给出:

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用新的url发送一个新的请求。 请给我任何解决这个问题的想法!

1 个答案:

答案 0 :(得分:0)

这可以通过在字符串中转换服务器响应,然后拆分字符串以从段落中获取特殊文本来完成。