我正在开发一款应用,可让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刚刚被删除,但我愿意使用任何更新所有权的最佳工具。我只是在寻找达到那个目标的最直接的道路。
是否有人获得了所有权更新?如果是的话,你使用了什么工具?
答案 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)
希望它也能为你效力。