试用版演示中的Google Drive SDK更新(删除/插入)所有者权限500错误

时间:2012-09-24 04:20:54

标签: google-docs-api google-drive-api

我正在开发一款应用,可让Google Apps管理员重新分配文件的所有权。目前,我正在使用带有C#代码的Google Drive SDK for .NET。

当我在https://developers.google.com/drive/v2/reference/permissions/insert的Google Drive SDK测试演示中进行身份验证并填写属于Admin的文件的FileId并尝试从同一Google Apps域中插入其他所有者时,我获得了500内部服务器错误。我正在使用这些值:

POST     https://www.googleapis.com/drive/v2/files/0B1Y4_hVm0vbESlZuZHhBemtjcXM/permissions?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer {MY_ACCESSTOKEN}
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "role": "owner",
 "type": "user",
 "value": "user@mydomain.com"
}

“试一试”演示为我设置了范围

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file

    执行此操作。

我可以使用经过身份验证的Try It演示作为同一管理员用户获取该文件的权限列表,但我无法插入删除所有者权限。

我选择了Google Drive SDK,因为它更新,Google Docs API刚刚被删除,但我愿意使用任何更新所有权的最佳工具。我只是在寻找达到那个目标的最直接的道路。

是否有人获得了所有权更新?如果是的话,你使用了什么工具?

3 个答案:

答案 0 :(得分:1)

我为我们的工程师提交了一个内部错误进行调查,但是,我尝试在尝试与外部域中的用户共享而不是使用来自同一域的用户时重现该问题。

Google Apps域管理员可以阻止其用户将所有权更改为外部用户,但在这种情况下,API不应返回500,而是会失败并显示描述性错误消息。

我会在收到调查结果后立即更新此答案。

答案 1 :(得分:0)

使用transferOwnership标志解决了我的问题。

在python api客户端中,你可以这样做:

service.permissions().patch(
        fileId=doc.drive_id, permissionId=permission_id,
        body=patched_permission, transferOwnership=True).execute()

答案 2 :(得分:0)

几个月前我遇到了同样的问题。我昨天重试了它,现在似乎正在运作。谷歌工程师似乎已经解决了这个问题。

希望它也能为你效力。