如何从 google 驱动器 api 的另一个用户那里获取未共享文件的元数据?
How to get metadata of an unshared file from another user with google drive api?
我目前正在使用来自 的 Google 报告 API 开发 C# asp.net mvc 网络应用程序Admin SDK 在我的 Google 驱动器发生问题时接收通知。
然后,我还需要使用 Drive REST API GET Request 通过使用 doc_id
报告 API.
一切正常,除了报告 API 通知我另一个用户未共享文件。驱动器 REST API 正在尝试查找文件但未成功。
这是返回的错误 404:
Google.Apis.Requests.RequestError
File not found: 0B48ytfDI5h8qY2k4VzdjMkZRNXM [404]
Errors [
Message[File not found: 0B48ytfDI5h8qY2k4VzdjMkZRNXM] Location[file - other] Reason[notFound] Domain[global]
]
我正在使用这个范围:DriveService.Scope.Drive
文件所有者可以使用 this form 查看其文件的元数据,但我仍然遇到错误 404。
我是驱动器管理员,在我的 Google 应用程序管理设置中,我尝试了不同的配置但没有成功,即使在域中的每个人上使用默认共享 Link 也是如此。
所以我的问题是:当您不是文件所有者且文件未共享时,是否有可能获取文件元数据?
PS: 我正在使用与我的工作领域相关的 Google 无限工作应用程序,所以我认为我至少可以得到元数据文件作为管理员,即使文件未共享。
据我所知,访问 Drive API 中用户文件的唯一方法是为您的 Web 应用程序设置服务帐户。您可以在 Domain-Wide Delegation.
下的驱动器 API 文档中阅读更多相关信息
简单总结一下:
服务帐户是属于您的应用程序而不是单个最终用户的帐户。这允许您的应用程序有权以您域中的用户身份进行 API 调用(也可以对 "impersonate" 用户)。
要开始,必须执行以下任务:
- 在 Google 开发人员控制台中创建或 select 项目并启用 API(例如驱动器 API)。
- 转到凭据,添加新凭据和 select 服务帐户。更多详情 here.
- 这将创建三个项目(客户端 ID、私钥文件和电子邮件地址),这是在 Google Apps 域的 Admin Console 中授权您的应用程序所必需的。
现在,您创建的服务帐户需要被授予访问您想要访问的 Google Apps 域的用户数据的权限。这将需要管理员在管理控制台中授权服务帐户。由于它已在文档中提供,您可以访问 document 中的适当步骤。
现在,您的应用程序可以代表您的 Google Apps 域的用户实例化授权的云端硬盘服务对象(即 metadata)。希望这对您有所帮助,祝您好运!
我目前正在使用来自 的 Google 报告 API 开发 C# asp.net mvc 网络应用程序Admin SDK 在我的 Google 驱动器发生问题时接收通知。
然后,我还需要使用 Drive REST API GET Request 通过使用 doc_id
报告 API.
一切正常,除了报告 API 通知我另一个用户未共享文件。驱动器 REST API 正在尝试查找文件但未成功。
这是返回的错误 404:
Google.Apis.Requests.RequestError
File not found: 0B48ytfDI5h8qY2k4VzdjMkZRNXM [404]
Errors [
Message[File not found: 0B48ytfDI5h8qY2k4VzdjMkZRNXM] Location[file - other] Reason[notFound] Domain[global]
]
我正在使用这个范围:DriveService.Scope.Drive
文件所有者可以使用 this form 查看其文件的元数据,但我仍然遇到错误 404。
我是驱动器管理员,在我的 Google 应用程序管理设置中,我尝试了不同的配置但没有成功,即使在域中的每个人上使用默认共享 Link 也是如此。
所以我的问题是:当您不是文件所有者且文件未共享时,是否有可能获取文件元数据?
PS: 我正在使用与我的工作领域相关的 Google 无限工作应用程序,所以我认为我至少可以得到元数据文件作为管理员,即使文件未共享。
据我所知,访问 Drive API 中用户文件的唯一方法是为您的 Web 应用程序设置服务帐户。您可以在 Domain-Wide Delegation.
下的驱动器 API 文档中阅读更多相关信息简单总结一下:
服务帐户是属于您的应用程序而不是单个最终用户的帐户。这允许您的应用程序有权以您域中的用户身份进行 API 调用(也可以对 "impersonate" 用户)。
要开始,必须执行以下任务:
- 在 Google 开发人员控制台中创建或 select 项目并启用 API(例如驱动器 API)。
- 转到凭据,添加新凭据和 select 服务帐户。更多详情 here.
- 这将创建三个项目(客户端 ID、私钥文件和电子邮件地址),这是在 Google Apps 域的 Admin Console 中授权您的应用程序所必需的。
现在,您创建的服务帐户需要被授予访问您想要访问的 Google Apps 域的用户数据的权限。这将需要管理员在管理控制台中授权服务帐户。由于它已在文档中提供,您可以访问 document 中的适当步骤。
现在,您的应用程序可以代表您的 Google Apps 域的用户实例化授权的云端硬盘服务对象(即 metadata)。希望这对您有所帮助,祝您好运!