使用Google Docs API获取仅包含URL的文件夹的ACL

时间:2012-05-11 15:04:24

标签: .net google-api gdata

我正在使用Google Data .NET库。给定文件夹的URL(用户可能从其浏览器中复制并粘贴),其中包含文件夹ID,我希望能够获取该文件夹的访问控制列表并进行更改。

我可以像这样使用FolderQuery:

        DocumentsService ss = new DocumentsService(appname);
        ss.setUserCredentials(username, password);

        FolderQuery fq = new FolderQuery(folderid);
        DocumentsFeed df = ss.Query(fq);

        DocumentEntry de = (DocumentEntry)df.Entries[0];
        Uri AclUri = new Uri(de.AccessControlList);

但只返回文件夹的内容。我想要文件夹本身。

有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

FolderQuery类用于检索文件夹的内容,但您可以像检索文档一样检索文件夹的访问控制列表。

以下代码段假设folderId是您要为其检索ACL的文件夹的ID:

DocumentsService ss = new DocumentsService(appname);
ss.setUserCredentials(username, password);

string uri = String.Format(DocumentsListQuery.aclsUriTemplate, folderId);
AclQuery query = new AclQuery(uri);
AclFeed feed = ss.Query(query);

foreach (AclEntry acl in feed.Entries)
{
    // Print the acl Role to the screen
    Console.WriteLine(acl.Role.Value);
    // Print the acl Scope type and value to the screen
    Console.WriteLine(acl.Scope.Type + " - " + acl.Scope.Value);
}