当前位置: 首页 > 知识库问答 >
问题:

请求URL返回代码失败404

伍嘉
2023-03-14

我在google sheets中有一个脚本,可以将当前的工作表作为附件发送到电子邮件中。

这个脚本在我看来100%都能正常工作,但是任何其他运行相同脚本的人都会出错。寻找想法或解决方案,这样每个人都可以使用脚本,而不仅仅是我。他们都已授权脚本运行,但仍然存在相同的错误。(脚本下面列出的错误)

function onOpen() {
  var ui = SpreadsheetApp.getUi();
  // Or DocumentApp or FormApp.
  ui.createMenu('Send Email')
      .addItem('Course Update', 'menuItem1')
      .addItem('Training Week Email', 'menuItem2')
      .addToUi();

}

function menuItem1() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     COURSEUPDATE();
}

function menuItem2() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
     TRAININGWEEK();
}; 



//This is the second Script to send entire doc to me

function COURSEUPDATE() {

var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Email subject and message body

  var url = ss.getUrl();
  url = url.replace(/edit$/,'');

  var url_ext = 'export?exportFormat=pdf&format=pdf' // export as pdf
                + '&size=letter'                       // paper size
                + '&portrait=false'                    // orientation, false for landscape
                + '&fitw=true'                         // fit to width, false for actual size
                + '&sheetnames=false&printtitle=false' // hide optional headers and footers
                + '&pagenumbers=false&gridlines=false' // hide pagenumbers and gridlines
                + '&fzr=false'                         // do not repeat row headers (frozen rows) on each page
                + '&gid=';                             // the sheet's Id

  var token = ScriptApp.getOAuthToken();
  var sheets = ss.getSheets();

  var response = UrlFetchApp.fetch(url + url_ext + SpreadsheetApp.getActiveSheet().getSheetId(), {
      headers: {
        'Authorization': 'Bearer ' +  token
      }
    });

  var email = SpreadsheetApp.getActiveSheet().getRange("A3").getValue();
  var message = "Versal Course Updates";
  var subject = "Versal Course Progress Updates";

  MailApp.sendEmail(email, subject, message, {attachments:[response]});

};


//Traiing Week Email

function TRAININGWEEK() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Email subject and message body

  var url = ss.getUrl();
  url = url.replace(/edit$/,'');

  var url_ext = 'export?exportFormat=pdf&format=pdf' // export as pdf
                + '&size=letter'                       // paper size
                + '&portrait=true'                    // orientation, false for landscape
                + '&fitw=true'                         // fit to width, false for actual size
                + '&sheetnames=false&printtitle=false' // hide optional headers and footers
                + '&pagenumbers=false&gridlines=false' // hide pagenumbers and gridlines
                + '&fzr=false'                         // do not repeat row headers (frozen rows) on each page
                + '&gid=';                             // the sheet's Id

  var token = ScriptApp.getOAuthToken();
  var sheets = ss.getSheets();

  var response = UrlFetchApp.fetch("url + url_ext + SpreadsheetApp.getActiveSheet().getSheetId(), {
      headers: {
        'Authorization': 'Bearer ' +  token
      }
    });

  var email = SpreadsheetApp.getActiveSheet().getRange("A3").getValue();
  var message = "Training Information";
  var subject = "Stratus Training Information";

  MailApp.sendEmail(email, subject, message, {attachments:[response]});

};

其他人收到的错误,每次都对我有效:

https://docs.google.com/a/stratusvideo.com/spreadsheets/d/1AbpHj6Sstcq509BSj57kyIkpQZAFHoykrGx0bckFCfc/export?exportFormat=pdf请求失败

共有1个答案

朱令
2023-03-14

加行

驱动pp.getRootFolder()

您需要调用它一次以获取OAuthtoken。对于失败的请求,它可能为空。

 类似资料:
  • 问题内容: 好的,我已经到处寻找了。基本上,我们使用的是跨域请求的$ http请求。我们的服务器允许该域,当请求返回200时,一切正常。但是,无论何时我们的服务器返回错误500、401,无论如何,Angular都认为这是CORS问题。 我用Fiddler调试了响应,以验证服务器是否返回了500,但Angular阻塞了。 这是请求: 然后在控制台中,我将看到: XMLHttpRequest无法加载f

  • 我正在使用React Native开发一个简单的应用程序。我正在Genymotion Android Emulator上测试它。我已经创建了本地web服务器来侦听请求,它正在运行http://localhost:8082/API/.我已经测试了api,工作正常。然后,我从索引中发出一个获取请求。Androidjs。 以下是来自React本机代码的API示例请求: 以下是Api服务器的代码(使用fl

  • 我最近参加了一个新项目。在这个项目中,所有正在使用的API总是返回状态代码200。即使响应应该是400或404,API也会返回状态代码200。 我问API为什么不返回其他响应代码,程序员告诉我他们不使用响应代码。他们把信息放在身体里。 例如,缺少一些必填字段,它们返回响应状态代码200,但正文返回如下 如果未经授权的用户试图访问,状态代码为200,身体像这样返回 我以前做的是非常不同的,我总是通过

  • 我有一个非常简单的问题。我试图从linkedIn页面的html中获取工作描述,但是我没有得到页面的html,而是得到了几行看起来像javascript代码的代码。我对这一点很陌生,所以任何帮助都将不胜感激!谢谢 这是我的密码: 当我运行这个时,我没有得到我期望包含工作描述的html。。。我只得到几行javascript代码。

  • URL返回以下错误,但其他URL返回预期的HTML正文,例如我不知道是什么引起了这个问题。

  • 本文向大家介绍jquery+ajax请求且带返回值的代码,包括了jquery+ajax请求且带返回值的代码的使用技巧和注意事项,需要的朋友参考一下 现在比较流行使用jquery的ajax来实现一些无刷新请求效果,本章节提供一个非常简单的代码实例供大家参考之用,希望能够给需要的朋友带来一定的帮助,代码如下: async是asynchronous[异步]的缩写,它是一个bool值默认为true。当as