Как удалить сайт Google по его идентификатору

Я не могу узнать, как я могу удалить сайт Google по его идентификатору. Я думаю, мне нужно создать SiteEntry для этого сайта и позвоните delete() метод, но не знаю, как создать SiteEntry только с идентификатором.

Вот как я создаю сайты:

SitesService client = new SitesService("domain-AppName-v1");
client.setUserCredentials("adminUSer@domain.com", "password");

//Define Site
SiteEntry entry = new SiteEntry();
entry.setTitle(new PlainTextConstruct("Accounting 001"));
entry.setSummary(new PlainTextConstruct("Accounting 001"));

entry.getCategories().add(new Category(TagCategory.Scheme.TAG, "Course Sessions", null));

//Create the site
SiteEntry result = client.insert(new URL("https://sites.google.com/feeds/site/domain.com/"), entry);

//This Delete does not work
result.delete();

//Trying to setup the id in a SiteEntry, it doesn't work either
SiteEntry e = new SiteEntry();
e.setId(result.getId());
e.delete();

1 ответ

Решение

Это оказалось глупым вопросом.

Во-первых, https://developers.google.com/google-apps/sites/faq заявляет, что API пока не поддерживает удаление сайтов, и их необходимо удалить вручную через веб-панель. Это действительно отстой, потому что в настоящее время у меня есть сотни сайтов, созданных с помощью API, и очень сложно удалить их вручную:-(

Во-вторых, siteEntry.delete() создает исключение, в котором говорится, что "удаление не реализовано", поэтому я ошибся, добавив это как работающий в коде вопроса.

Наконец, чтобы получить SiteEntry, вы должны сделать так:

SitesService client = <initialize the service>
SiteEntry site = client.getEntry(new URL(siteID), SiteEntry.class);
Другие вопросы по тегам