Folder Sharing в Google Docs
Категории: Интернет, Программы, Разработка ПО
Тэги: Eclipse, Google, Google Docs, Java
До сих пор средствами Google Docs можно было открывать общий доступ только на документы, и, строго говоря, с точки зрения пользовательского интерфейса ничего не поменялось. Тем не менее, в новой редакции Google Docs API эта фича стала доступной.
Я написал небольшое приложение на Java, для автоматизации этого процесса, до тех пор пока нововведение не будет анонсировано официально.
Для запуска необходимо настроить, например, Eclipse таким образом, и в функцию main скопировать следующий код:
List<String> folderNames = Arrays.asList("Folder1", "Folder2", "..."); List<String> userMails = Arrays.asList("user1@domain.com", "user2@domain.com", "..."); String role = "reader"; // or "owner", "writer", "peeker", "none" String appsName = "MyComp-MyApps-version"; String username = "username"; String password = "password"; if(!role.equals("reader") && !role.equals("writer") && !role.equals("owner") && !role.equals("none") && !role.equals("peeker")) { return; } DocsService client = new DocsService(appsName); client.setUserCredentials(username, password); DocumentQuery query = new DocumentQuery(new URL("http://docs.google.com/feeds/default/private/full/-/folder")); DocumentListFeed resultFeed = client.getFeed(query, DocumentListFeed.class); for (DocumentListEntry entry : resultFeed.getEntries()) { for(String name : folderNames) { if(entry.getTitle().getPlainText().equalsIgnoreCase(name)) { for(String mail : userMails) { AclRole aclRole = new AclRole(role); AclScope aclScope = new AclScope(AclScope.Type.USER, mail); AclEntry aclEntry = new AclEntry(); aclEntry.setRole(aclRole); aclEntry.setScope(aclScope); client.insert(new URL(entry.getAclFeedLink().getHref()), aclEntry); } } } AclFeed aclFeed = client.getFeed(new URL(entry.getAclFeedLink().getHref()), AclFeed.class); for (AclEntry aclEntry : aclFeed.getEntries()) { System.out.println( aclEntry.getScope().getValue() + " (" + aclEntry.getScope().getType() + ") : " + aclEntry.getRole().getValue()); } }
Здесь списки folderNames и userMails необходимо заполнить соответствующими значениями. Параметр “…” в сигнатуре вызова функции asList – отсебятина, предназначенная просто показать, что количество параметров функции можно смело расширять. В конечном варианте когда его надо убрать. Вместо username и password вписать свои явки и пароли для доступа в к приложениям Google. Ну и роль выставить такую, какую требуется.
Теперь пользователи, с которыми вы разделили доступ к папке, смогут посмотреть на ее содержимое по ссылке: http://docs.google.com/#folders-shared-with-me
Тем не менее, не все сразу безоблачно заработает. Пользователи, которым вы разрешили доступ на изменение, не увидят созданные ими документы в этой папке. Чтобы все заработало как полагается, им необходимо добавить вас в соавторы их документов, а вам необходимо будет перетащить эти документы из общего списка в расшареную папку.




.png)