【问题标题】:Write to GoogleSheet via API with Java使用 Java 通过 API 写入 Google Sheet
【发布时间】:2016-09-27 23:53:16
【问题描述】:

我正在尝试使用带有 Java 的 Google Sheet API 将值写入单元格。 为了阅读,我使用了来自Java Quickstart 的指南,这对我来说效果很好。

为了写到谷歌表格,我使用:

service.spreadsheets().values().update(spreadsheetId, "Sheet1!A4:H", response).execute();

此函数在运行时输出以下错误:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
{
  "code" : 403,
  "errors" : [ {
    "domain" : "global",
    "message" : "Request had insufficient authentication scopes.",
    "reason" : "forbidden"
  } ],
  "message" : "Request had insufficient authentication scopes.",
  "status" : "PERMISSION_DENIED"
}

作为我正在使用的身份验证范围

private static final List<String> SCOPES = Arrays.asList(SheetsScopes.SPREADSHEETS);

【问题讨论】:

  • 您检查过您的client-secret.json 文件吗?或者在授权电子表格请求时使用正确的scopes。我希望这会有所帮助。
  • 在构建身份验证流程时尝试使用approval_prompt=false。
  • @Mr.Rebot 我重新创建了 client-secret.json 但没有任何改变。关于范围 - 我是否使用了原始消息中所述的正确范围?
  • @hoozecn 你能解释一下流程吗?
  • GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) .setDataStoreFactory(DATA_STORE_FACTORY) .setAccessType("offline").setApprovalPrompt("force") .build();

标签: java google-api google-api-java-client google-sheets-api


【解决方案1】:

尝试将“Sheet1!A4:H”替换为 A4:H

【讨论】:

    【解决方案2】:

    我遇到了同样的问题。我解决了范围内的问题。 我刚换了

    SheetsScopes.SPREADSHEETS.READONLY
    

     SheetsScopes.SPREADSHEETS
    

    而且效果很好。

    【讨论】:

      【解决方案3】:

      显然有几个问题在一起:

      1. 删除存储在 /Users/XXX/.credentials 中的凭据。
      2. 将范围更改为 SheetsScopes.SPREADSHEETS。
      3. Google 表格共享和编辑选项位于表格本身。

      现在可以了! 谢谢大家帮忙

      【讨论】:

      • 先生,您在这里救了一条命。
      • 删除凭据和更改范围对我有用。谢谢亚历克斯:)
      【解决方案4】:

      Java API 必须以交互方式使用,如果您在无法弹出 Web 浏览器(允许您批准 OAuth 对话框)的服务器上运行此 API,则身份验证流程不会无法获得正确的凭据,因此无法正常工作。

      在运行此程序时,您是否看到弹出一个浏览器来批准 OAuth 对话框?如果没有,您很可能在无头会话中运行,并且需要一些其他方法来获取用户的凭据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2023-01-22
        • 1970-01-01
        相关资源
        最近更新 更多