知道文件ID,我可以找到文件的所有者吗?

时间:2013-06-15 00:49:42

标签: google-drive-api

我有一个Google Apps表单链接,需要找到表单的所有者。

我设置了一个2腿认证的服务帐户。测试了可以冒充用户并从该帐户中提取文件列表的代码(python,使用google-api-python-client和oauth2client),因此代码在该senario中运行。但是,在这种特殊情况下,我只知道文件ID,我想知道所有者。以下是相关代码部分:

credentials = SignedJwtAssertionCredentials(
  '123456-xxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com',
   key,
   scope='https://www.googleapis.com/auth/drive'
 )

http = httplib2.Http()
http = credentials.authorize(http)
service = build("drive", "v2", http=http)


# Search file by id
file_id = 'xxxxxxxxBMWnkxVEhnUnF5eEh1Snc6MQ'
f = service.files().get(fileId=file_id).execute()

我收到“未找到文件”错误。我知道文件存在,因为表单的链接是活的。我测试了一个测试帐户。如果我将file_id和测试帐户作为prn param提供给SignedJwtAssertionCredentials,我可以找到该文件及其元数据。

apiclient.errors.HttpError: <HttpError 404 when requesting https://www.googleapis.com/drive/v2/files/xxxxxxxxBMWnkxVEhnUnF5eEh1Snc6MQ?alt=json returned "File not found: dEtpdmlCYzBMWnkxVEhnUnF5eEh1Snc6MQ">

如果我知道的唯一信息是表单的ID,是否可以找到文件的metdata(包括所有者)?顺便说一句,Google Apps控制台审核日志似乎不包含表格。

谢谢!

XSF

1 个答案:

答案 0 :(得分:1)

我会让Google的人确认,但根据我自己的API使用经验,如果您没有权限访问该文件,该文件将不可见且实际上不存在。

这可能是出于安全原因。