从 Google Picker 中选择文件后,我在后端集成中收到“文件未找到”错误

问题描述 投票:0回答:1

我们的应用程序在尝试从 Google Picker 下载所选文件时遇到 Google Drive 错误。

我们有两个应用程序,一个用于生产环境,一个用于开发环境,该应用程序在 Google Developer Console 上处于测试模式(未经验证)。

两个应用程序具有相同的范围:

.../auth/userinfo.email
.../auth/userinfo.profile
.../auth/drive.file app
.../auth/drive.install

以及相同的配置,尽管在不同的服务器上(或者至少我们相信如此)。

在测试环境中一切正常,而在生产环境中却出现错误。

我们使用生产应用程序凭据和测试凭据进行本地测试(在开发计算机上),并且能够复制错误,并将其追溯到对 Drive 的调用。

在本地,通过测试凭据,我们得到以下结果:

curl -H "[AUTH_TOKEN]" https://www.googleapis.com/drive/v3/files/19MO3I3AWVmgj75DHzhm-O-j12dS8lZC_xxxxxxxxxxx

RESPONSE:

{
    "kind": "drive#file",
    "id": "19MO3I3AWVmgj75DHzhm-O-j12dS8lZC_xxxxxxxxxxx",
    "name": "recount jobs -",
    "mimeType": "application/vnd.google-apps.document"
}

仍然在本地,但有了生产凭证,我们得到了这个结果:

curl -H "[AUTH_TOKEN]" https://www.googleapis.com/drive/v3/files/19MO3I3AWVmgj75DHzhm-O-j12dS8lZC_xxxxxxxxxxx

{
  "error": {
    "code": 404,
    "message": "File not found: 19MO3I3AWVmgj75DHzhm-O-j12dS8lZC_xxxxxxxxxxx.",
    "errors": [
      {
        "message": "File not found: 19MO3I3AWVmgj75DHzhm-O-j12dS8lZC_xxxxxxxxxxx.",
        "domain": "global",
        "reason": "notFound",
        "location": "fileId",
        "locationType": "parameter"
      }
    ]
  }
}

注意:并非所有文件都有此问题。此外,如果通过 Google 云端硬盘中的“打开方式”打开出现故障的文件,则一切正常。

是否有一些我们忽略的配置问题?

google-workspace google-picker
1个回答
0
投票

为我解决问题的是设置

appId
,如这个问题的答案之一所述。

就我而言,我将

appId
留空,因为我正在使用的反应驱动器选择器库在文档中没有提及任何有关
appId
的内容。

问题是选择器不会抱怨,让用户选择文件并在回调中返回元数据,但是当用户尝试下载文件时,会返回未找到错误。

© www.soinside.com 2019 - 2024. All rights reserved.