【问题标题】:Google drive "watch" API throws 401 Unauthorized errorGoogle 驱动器“watch”API 抛出 401 Unauthorized 错误
【发布时间】:2017-06-28 13:18:10
【问题描述】:

当我尝试执行以下代码时:

gdrive.files().watch(filed.getId(), channel).execute();

以下异常正在抛出。文件列表、上传等其他操作运行良好。我还添加了域并在 SearchConsole 中验证以获取推送通知。请让我知道这个问题。

com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized 在 com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146) 在 com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113) 在 com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40) 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321) 在 com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1065) 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 在 com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)

【问题讨论】:

  • 你授权了哪些范围?
  • 我试过 DriveScopes.DRIVE_FILE 和 DriveScopes.All()
  • 请帮忙解决这个问题!!
  • 任何遇到此问题并解决相同问题的人请发布解决方案...

标签: push-notification google-drive-api


【解决方案1】:

由于您的问题与授权有关,您可能错过了完全授权您的应用程序的重要步骤,例如将您的 client_secret.json 移动到您的工作目录。

按照quickstart 给出的步骤进行操作:

  • 使用这个wizard 在 Google Developers Console 中创建或选择一个项目,然后 自动开启 API。点击继续,然后点击凭据。
  • 在向项目添加凭据页面上,单击取消按钮。
  • 在页面顶部,选择 OAuth 同意屏幕选项卡。选择一个电子邮件地址,输入产品名称(如果尚未设置),然后单击 保存按钮。
  • 选择凭据选项卡,单击创建凭据按钮并选择 OAuth 客户端 ID。
  • 选择应用类型Other,输入名称“Drive API Quickstart”,点击创建按钮。
  • 单击“确定”关闭生成的对话框。
  • 点击客户端 ID 右侧的 file_download(下载 JSON)按钮。
  • 将此文件移动到您的工作目录并将其重命名为 client_secret.json。

【讨论】:

  • 在创建应用程序时完美地遵循了这些步骤。这不能解决我的问题。我可以看到我的 Http Header 显示为 HTTP/1.1 401 Unauthorized WWW-Authenticate: Bearer realm="accounts.google.com", error=invalid_token
  • http请求授权头包含什么?
  • 这里是示例请求 -------------- 请求 -------------- POST googleapis.com/drive/v3/files/XYZIDOFFILE/watch Accept-Encoding: gzip 授权: 用户代理:测试应用 Google-API-Java-Client Google-HTTP-Java-Client/1.22.0 (gzip) 内容类型:应用程序/json; charset=UTF-8 内容编码:gzip 内容长度:150
  • ---------- 响应 -------------- HTTP/1.1 401 Unauthorized Transfer-Encoding: chunked Alt-Svc : quic=":443";马=2592000; v="39,38,37,36,35" 服务器:GSE X-Content-Type-Options:nosniff WWW-Authenticate:Bearer realm="accounts.google.com",error=invalid_token 日期:2017 年 6 月 30 日星期五 10: 51:36 GMT X-Frame-Options: SAMEORIGIN Cache-Control: private, max-age=0 Content-Encoding: gzip Vary: X-Origin Vary: Origin Expires: Fri, 30 Jun 2017 10:51:36 GMT X- XSS 防护:1;模式=块内容类型:应用程序/json; charset=UTF-8
猜你喜欢
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 2016-11-28
  • 2017-05-14
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
相关资源
最近更新 更多