【问题标题】:Google App Script Authorization error for JavaJava的Google App脚本授权错误
【发布时间】:2017-10-10 03:08:38
【问题描述】:

我能够将字符串从 App Script 发送到 Java 应用程序使用 单一功能。例如:

function returnText() {
  return "Hello"; 
}

Java 应用程序能够将字符串打印到命令行。

但是,当我向 Google App Script 添加多个函数时,我得到一个 授权错误。请看下面的错误:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 未经授权

我该如何解决这个问题?

【问题讨论】:

    标签: java google-apps-script oauth-2.0


    【解决方案1】:

    这是您需要的。关于Handling errors: revoked or invalid tokens的文档。

    Google 云端硬盘应用应考虑返回 HTTP 401 的 API 或 HTTP 403 调用 Drive API 时的响应。这些错误可能 表示以下任何一项:

    • 令牌到期。
    • 令牌吊销。这将导致访问令牌和刷新令牌都停止工作。
    • 令牌未授权用于所需范围。
    • 请求未使用 OAuth 2.0 协议正确授权。

    令牌过期可以通过刷新凭证来处理。如果说 调用失败并出现“Invalid Credentials”错误,问题可能是 用户已撤销访问权限。对于撤销的访问权限和所有问题 除了令牌到期,最好的补救措施是重定向用户 通过 OAuth 对话框重新授予访问权限。

    【讨论】:

    • 感谢您的帮助。我相信这与范围问题有关,因为添加新功能意味着在 Google App Script 中添加更多范围;因此,Java 应用程序必须有权访问这些范围才能调用 App Script。否则,我们得到一个错误。但是,我不知道如何解决这个问题,并且您提供的链接没有提到解决方案。
    • 所以...我们需要获取一个 OAuth 令牌并在 Http 请求中发送它...对吗?
    【解决方案2】:

    我解决了这个问题。我添加的函数使用 DocumentApp.getActiveDocument() 函数调用 GoogleDoc。要访问 GoogleDoc,我们需要在本地运行的 Java 代码中定义范围 https://www.googleapis.com/auth/documents

    【讨论】:

    • 我不明白。链接中没有内容,只有一个简单的单词“文档”。
    猜你喜欢
    • 2019-11-30
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多