编写一个应用程序,用于抓取用户上传的打包zip文件的上传目录,并在Google for Work共享google驱动器文件夹中重新创建in-zip目录结构。
问题:在For Work域中创建的服务帐户无法访问或看到共享文件夹。代码在C#中。我希望我只是错过了一些愚蠢的东西。
详细信息:以域管理员帐户登录。进入google api控制台,启用api,创建服务帐户,授予对该服务帐户电子邮件的访问权限。通过API和服务帐户,在File对象列表中找不到共享文件夹,也无法通过ID上传到该文件夹。
使用共享文件夹的in-url文件夹ID调用以下代码段。共享给服务帐户的文件夹不会显示在返回的内容列表中。
// get starting point
string masterParent = "xxxxx"; // pulled from URL after sharing folder
File masterParentFolder = GetGAPIFileById( service, masterParent, false );
示例代码段:
static File GetGAPIFileById( gapi.DriveService service, string id, bool folderOnly ) {
if( null == id ) id = "-1";
File rtn = null;
var lreq = service.Files.List();
lreq.MaxResults = 10000;
if( folderOnly ) {
lreq.Q = "mimeType='application/vnd.google-apps.folder' and trashed=false";
} else {
lreq.Q = "trashed=false";
}
var lres = lreq.Execute();
foreach( File f in lres.Items ) {
Console.WriteLine( "Item: " + f.Title + " // " + f.Id );
if( f.Id.Trim().ToLower() == id.Trim().ToLower() ) {
rtn = f;
break;
}
}
return rtn;
}
答案 0 :(得分:0)
嗯,事实证明,问题似乎是由更改域外共享设置引起或加剧的,而不是在共享文件夹之前等待完全传播,以及创建服务帐户。删除所有内容并重做完全相同的步骤后,大约在初始尝试后5天,事情正常。当谷歌说“这可能需要长达24小时”而且它似乎在几分钟内就可以正常工作了,继续将这些东西单独留下并在一两天后再回到它。
::耸肩::谢谢,全部。