如何在Android上使用google-api-java-client共享文档?

时间:2012-05-28 15:56:22

标签: android google-docs google-docs-api google-api-java-client google-drive-api

我想为Google Documents List API创建一个Android客户端应用程序,考虑到它可能会在不久的将来被Google Drive API取代。因此,我使用google-api-java-client实现了身份验证,如果需要,这可能会简化到新API的转换。

现在我正在尝试扩展Google提供的shared-sample-docs项目中的DocsClient.java课程,以便能够与用户联系人共享文档。

我发现没有比@yanivinbar撰写的以下介绍更好的信息:http://javadoc.google-api-java-client.googlecode.com/hg/1.4.1-beta/com/google/api/client/googleapis/xml/atom/package-summary.html

从Google Documents List API文档中,我发现ACL用于向其他用户提供对特定文档的访问权限。但是,我不清楚我应该实现哪些方法来实现这个或其他常见的API相关事务。

1 个答案:

答案 0 :(得分:0)

您是对的,您需要为文档条目添加ACL条目。您可以使用以下方法:

public void shareFile(DocumentListEntry documentListEntry,
        AclScope.Type type, String value, String role)
        throws MalformedURLException, IOException, ServiceException {

    // Instantiate a AclEntry object to update sharing permissions.
    AclEntry acl = new AclEntry();

    // Set the ACL scope.
    acl.setScope(new AclScope(type, value));

    // Set the ACL role.
    acl.setRole(new AclRole(role));

    // Insert the new role into the ACL feed.
    service.insert(new URL(documentListEntry.getAclFeedLink().getHref()), acl);             
}

此处服务是com.google.gdata.client.docs.DocsService的对象。您还可以在文档中指定不同的共享typesroles

对上述方法的可能调用可以是

shareFile(entryObj,AclScope.Type.USER,"your email id",AclRole.OWNER);
shareFile(entryObj,AclScope.Type.DOMAIN,"domain name",AclRole.READER);