我目前正在使用管理员SDK 中的 Google Reports API 开发C#asp.net mvc网络应用,以便在我的Google上发生问题时接收通知驱动。
然后,我还需要使用 Drive REST API GET Request来使用Reports API提供的doc_id
来构建文件路径(以及更多)
除非Report API通知另一个用户非共享文件,否则一切正常。 Drive 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 Apps管理员设置中,我尝试了不同的配置,但没有成功,即使是域中所有人的默认共享链接。
所以我的问题是:当你不是文件所有者并且文件没有被共享时,是否可以获取文件元数据?
PS:我使用Google Apps无限制地处理与我的工作领域相关的工作,所以我认为即使文件不是,我至少也可以将管理员的元数据文件作为管理员获取共享。
答案 0 :(得分:1)
据我所知,在Drive API中访问用户文件的唯一方法是为您的Web应用程序设置服务帐户。您可以在Domain-Wide Delegation下的Drive API文档中详细了解相关信息。
简要总结一下:
服务帐户是属于您的应用程序的帐户,而不是属于单个最终用户的帐户。这允许您的应用程序有权将API调用作为您域中的用户(也称为“模拟”用户)。
要开始使用,必须执行以下任务:
现在,您已创建的服务帐户需要被授予访问您要访问的Google Apps域的用户数据的权限。这将要求管理员在管理控制台中授权服务帐户。由于它已在文档中提供,因此您可以访问document中的相应步骤。
现在,您的应用可以代表您的Google Apps域用户实例化授权的云端服务对象(即metadata)。希望这有帮助,祝你好运!