我正在尝试检索电子表格的pdf。无论何时尝试,都会出现以下错误:
对的请求失败https://docs.google.com/a/firstcallres.com/spreadsheets/d/1ZPcW5cOQT5w28VUbr_JG9U-r7m6Uf-MDQcSmFOyhbE8/export?exportFormat=pdf
如果我在登录时单击上述URL,则会下载PDF。
如果我使用以下代码,我将得到一个登录页面作为响应。URL
是工作表URL,而URL\u ext
是参数。
var response = UrlFetchApp.fetch(url + url_ext);
如果我使用下面的代码和OAuth令牌,我会得到404响应。
var response = UrlFetchApp.fetch(url + url_ext, {
headers: {'Authorization': 'Bearer ' + ScriptApp.getOAuthToken() }
});
为什么会这样?如何使用令牌通过应用程序脚本访问工作表以检索PDF?
编辑:它已自动开始处理我的测试应用程序脚本。但是,如果我在另一个应用程序脚本中创建完全相同的函数,它将再次失败,并出现404错误。
我做了更多的故障排除,并将工作函数复制粘贴到新的应用程序脚本项目中。该函数运行成功,之后非工作函数现在工作。
在非工作函数出现故障和工作之间,未对其进行任何编辑。
Edit2:我可以重现这个错误:如果我使用第二个工作函数,并将其复制粘贴到新项目中,它将失败,出现404错误。我不知道为什么会发生这种情况,但当404错误在其他地方使用完全相同的代码时,我可以成功地重现它。
您缺少发出此请求的正确作用域。它应该返回未经验证的401,而不是404。要解决此问题,您需要添加驱动器作用域。我通过一个简单的DriveApp来实现这一点。getRootFolder()
调用脚本中的某个地方。这会将驱动器作用域添加到项目中。但对DriveApp的任何调用都将添加范围。
下面是一个示例脚本:
function exportToPDF() {
var url = "https://docs.google.com/spreadsheets/d/1oQ2zsbcCwuc_wdwgfFopRJn-5fGN3oY7L237ivxuxmM/export?exportFormat=pdf"; //add your options as you wish
var res = UrlFetchApp.fetch(url, {headers:{"Authorization":"Bearer " + ScriptApp.getOAuthToken()},muteHttpExceptions:true});
var newPdf = Utilities.newBlob(res.getContent(), "application/pdf", "Export.pdf")
DriveApp.createFile(newPdf);
}
问题内容: 我想从bash脚本执行python脚本,并且要将python脚本的输出存储在变量中。 在我的python脚本中,我将一些内容打印到屏幕上,最后我返回一个带有以下内容的字符串: 在我的bash脚本中,我执行了以下操作: 但是,当我检查with的值时,我得到了Python脚本打印到屏幕上的所有内容,但 没有 返回值! 我应该怎么做? 编辑:我需要该字符串,因为它告诉我Python脚本创建的
问题内容: 我有2张桌子- : 第二张桌子- : 我只需要选择未取消的预订(在此示例中仅为ID 3)。我可以轻松地选择带有简单条件的已取消,但由于未在此处取消工作,因此我在努力避免未取消。 问题答案: 要么: 第一个版本更直观,但是我认为第二个版本通常可以获得更好的性能(假设您在联接中使用的列上有索引)。 第二个版本有效,因为返回第一个表中所有行的一行。当条件成功,这些行会包括从第二表中的列,就像
我试图通过使用基于索引的行位置简单地获得df的子集。但是,出于某些原因,以下代码有时返回空数据帧: dist数据帧(帧是索引): 输出: 我一辈子都不明白为什么会发生这种事。
问题内容: 我试图获取通过终端机(Mac)设置的环境变量的值,同时还在.bash_profile文件中设置该变量并重新加载。这样做之后,我回显了该值,并在终端上打印了正确的值。尝试检索变量的值时(我确保在.bash_profile文件中以及在使用时都使用了正确的名称。 在下面的代码中,我用 VAR_NAME 替换了变量的名称: 在我的.bash_profile中: 当我打印出的值时,将打印“ nu
问题内容: 我打电话来创建一个文件夹,其中包含一组特定的生成数据。但是,即使尚未创建我指定的路径,也会引发该路径已存在的OSError。 例如,我打电话: 即使我在任何地方都没有测试目录或名为test的文件,也会导致此调用。 注意:我使用的实际路径名不是“ test”,而是更确定的东西,我确定它没有在任何地方命名。 请帮忙? 问题答案: 格雷格的答案是正确的,但还远远不够。 具有次错误条件,并且您
问题内容: 我想从PHP脚本返回JSON。 我只是回应结果吗?我必须设置标题吗? 问题答案: 通常,没有它会没事,但是您可以并且应该设置Content-Type标头: 如果不使用特定的框架,通常会允许一些请求参数来修改输出行为。通常,为了快速进行故障排除,不发送标头,或者有时将数据有效载荷print_r盯着它很有用(尽管在大多数情况下,它不是必需的)。