Google Apps 脚本 UrlFetchApp 返回未经授权的错误 401

2024-06-25

这是我正在使用的代码。

function doc_to_html(id)
{
  var url = "https://docs.google.com/feeds/download/documents/export/Export?id="+id+"&exportFormat=html";
var param = 
    {
      method      : "get",
      headers     : {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
      muteHttpExceptions:true,
    };
 var html = UrlFetchApp.fetch(url,param).getContentText();
  Logger.log(html);
}

它进行了多次测试,但现在返回“未经授权” 错误 401。”更准确地说,它返回:

<html>
<head>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>

我查看了所有能找到的有关 UrlFetchApp 的文档,没有看到任何配额或限制。我检查了脚本范围并https://www.googleapis.com/auth/script.external_request https://www.googleapis.com/auth/script.external_request被授权。


提供的范围不足以访问该文档。要访问它,您还需要文档范围。编辑清单文件以具有以下范围:

"oauthScopes": ["https://www.googleapis.com/auth/script.external_request","https://www.googleapis.com/auth/documents"],

或者在脚本中添加对 Document App 的虚拟调用:

DocumentApp.getActiveDocument();

根据评论Tanaike https://stackoverflow.com/users/7108653,似乎文档范围还不够,但电子表格范围也是需要的,即使我们不访问电子表格。或者,需要 Drive 的只读范围。

电子表格+文档范围:

显现:

"oauthScopes": ["https://www.googleapis.com/auth/script.external_request",
    "https://www.googleapis.com/auth/documents"
    "https://www.googleapis.com/auth/spreadsheets"],

或者在脚本中添加对 Document App+SpreadsheetApp 的虚拟调用:

//DocumentApp.getActiveDocument();
//SpreadsheetApp.getActive();

驱动范围:

显现:

"oauthScopes": ["https://www.googleapis.com/auth/script.external_request",
    "https://www.googleapis.com/auth/drive.readonly"],

或者在脚本中添加对 DriveApp 的虚拟调用:

//DriveApp.getFiles()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Apps 脚本 UrlFetchApp 返回未经授权的错误 401 的相关文章

随机推荐

  • 在 PowerShell 中提示用户输入

    我想提示用户进行一系列输入 包括密码和文件名 我有一个使用的例子host ui prompt 这似乎很合理 但我无法理解回报 有没有更好的方法在 PowerShell 中获取用户输入 Read Host http technet micro
  • HTML 中的字符限制

    如何对 HTML 中的文本输入施加字符限制 主要有2个解决方案 纯 HTML 的
  • 您可以通过 JavaScript 获取用户本地 LAN IP 地址吗?

    我知道对这个问题的最初反应是 不 和 它无法完成 和 你不应该需要它 你做错了 我想做的是获取用户的 LAN IP 地址 并将其显示在网页上 为什么 因为这就是我正在开发的页面的全部内容 显示尽可能多的关于您 访问者 的信息 https w
  • Pandas DataFrame 到嵌套 JSON 而不更改数据结构

    I have pandas DataFrame import pandas as pd import json df pd DataFrame 2016 04 30T20 02 25 693Z vmPowerOn vmName 2016 0
  • 如何将自定义 ISpecimenBuilders 与 OmitOnRecursionBehavior 结合使用?

    我如何使用自定义ISpecimenBuilder实例以及OmitOnRecursionBehavior我想将其全局应用于所有夹具创建的对象 我正在使用一个带有难闻的循环引用的 EF Code First 模型 就这个问题而言 无法消除该循环
  • Wpf ScrollViewer 滚动量

    是否可以更改 WPF ScrollViewer 滚动的量 我只是想知道是否可以更改滚动查看器 以便在使用鼠标滚轮或滚动查看器箭头时可以更改增量滚动量 简短的答案是 如果不编写一些自定义滚动代码 就无法做到这一点 但不要让这吓到你 这并不那么
  • 在 UI 更新或触摸事件之前动画不会开始

    我有一个奇怪的问题AlphaAnimation 它应该在以下情况下重复运行 AsyncTask调用处理程序 但是 第一次调用处理程序时Activity 除非我触摸屏幕或更新 UI 例如按手机的菜单按钮 否则动画不会启动 奇怪的是 一旦动画至
  • 更改 IIS URL 重写规则中的查询字符串值

    到目前为止我已经尝试了多种组合但没有运气 我有一个如下所示的网址 https teams company com Search pages results aspx url https teams2017 company com sites
  • Zend Framework 2 - 整数表单验证

    我有以下问题 我 根据教程 编写了一个表单验证 文本字段工作得很好 但整数字段的行为很奇怪 这是我的验证器 inputFilter gt add factory gt createInput array name gt zip requir
  • 将 IMPORTXML Xpath 查询格式化为 Google 表格的可读数据

    我正在将 XML 数据导入到具有以下结构的 google 工作表中 编辑 网址 https sonicstate com news tools revive stats client camp 3785 xml https sonicsta
  • 从Lua到C的Lua嵌套表

    我不幸未能将嵌套 Lua 表转换为 C json 对象 我正在使用 LuaTableToJson 请参阅后面的代码 其中 index 是要检索的参数索引 PopOneArg 是根据值的类型处理值的例程 当有嵌套表时 我想递归地调用 LuaT
  • Android OPEN 微调器,单击按钮即可

    我已经实现了按钮 单击并打开带有微调器的对话框 如下所述here http www dotnetexpertsforum com dialog box with spinner view in android t1485 html 然而 这
  • 如何编写一个简单的版本控制系统?

    我想做一个简单的版本控制系统 但我不知道如何构建我的数据和代码 这是一个简短的例子 用户登录 User has two options when uploading a file 提交新文件 提交文件的新版本 用户应该能够看到树 版本不同
  • woocommerce 在前端按库存和缺货对产品进行排序

    我想首先在产品类别中显示库存产品 或者如果可能的话在任何地方显示 然后我也想在 Woocommerce 中显示缺货产品 其实有很多产品没有数量但是有库存 所以需要检查库存状态 但我更喜欢先有更多的数量 在这种情况下 如何强制当前排序 非常感
  • 如何使用 jQuery 调用需要基本身份验证的 JSON Web 服务?

    我在 javascript 方面有点新手 但我正在尝试调用一个 JSON Web 服务 该服务需要使用 jQuery 或任何真正有效的东西 进行基本身份验证 我在谷歌上找不到任何真正的答案 我想做的事情可能吗 您将需要设置适当的请求标头来传
  • golang 将 big.Float 转换为 big.Int

    将big Float转换为big Int 我在下面编写代码 但它溢出了uint64 那么将big Float转换为big Int的正确方法是什么 package main import fmt import math big func Fl
  • jQuery .append() 产生乱序的 html 元素。为什么?

    我的 html 包含这个 div div 当我在 javascript 中这样做时 container append div container append p container append test content containe
  • Angular 2/4 编辑表单填充 FormArray 控件

    我正在尝试为具有嵌套属性 FormArray 的模型实现编辑表单 我在语法上遇到了问题 并且不确定我是否走在正确的轨道上 主表单的属性有效 这是我遇到问题的嵌套表单 这是我到目前为止所拥有的 这里我发起表单组 private initFor
  • 如何使用官方 MongoDB C# 驱动程序将 BsonDocument 转换为强类型对象?

    出于单元测试的目的 我想测试我的类映射 而无需在 MongoDB 数据库中读取和写入文档 为了处理特殊情况 例如循环父 子引用和只读属性 我使用了BsoncClassMap RegisterClassMap lt MyType gt 一些自
  • Google Apps 脚本 UrlFetchApp 返回未经授权的错误 401

    这是我正在使用的代码 function doc to html id var url https docs google com feeds download documents export Export id id exportForm