我有一个 Google Apps 表单链接,需要找到该表单的所有者。
我设置了一个具有 2 条腿身份验证的服务帐户。测试了可以模拟用户并从该帐户中提取文件列表的代码(python,使用 google-api-python-client 和 oauth2client),因此该代码在该场景中运行。但是,在这种特殊情况下,我只知道一个文件 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 参数提供给 SignedJwtAssertionCredentials,我可以找到该文件及其元数据。
apiclient.errors.HttpError: <HttpError 404 when requesting https://www.googleapis.com/drive/v2/files/xxxxxxxxBMWnkxVEhnUnF5eEh1Snc6MQ?alt=json returned "File not found: dEtpdmlCYzBMWnkxVEhnUnF5eEh1Snc6MQ">
如果我知道的唯一信息是表单的 ID,是否可以找到文件的元数据(包括所有者)?顺便说一句,Google Apps 控制台审核日志似乎不包含表单。
谢谢!
xsf