Как опубликовать Google Docs в .NET? - PullRequest
4 голосов
/ 19 марта 2012

Я использую библиотеку google-gdata .NET для интеграции с Документами Google. Это работает довольно хорошо, но я не могу понять, как использовать его для публикации моих документов для веб-доступа на основе ссылок только для просмотра.

Основная идея заключается в том, чтобы иметь возможность загружать документ в Документы Google и просматривать его в веб-среде (за пределами Google) без необходимости входа в систему с использованием учетных данных Google. Насколько я могу судить, лучший способ сделать это - опубликовать его по секретной ссылке, как описано в статье справки, ссылки на которую приведены выше.

Так кто-нибудь знает, как программно публиковать Google Docs в .NET?

EDIT

В качестве справочного материала и в качестве иллюстрации разницы между изменением ACL в документе (т. Е. Обнародованием) и публикацией документа как такового (как описано выше по ссылке), это соответствующие версии тот же документ в Документах Google:

Ответы [ 2 ]

3 голосов
/ 18 апреля 2012

Я только что обновил клиентскую библиотеку .NET, теперь вы можете использовать следующий код для публикации ревизии (предполагается, что entry - это экземпляр DocumentEntry, который вы хотите опубликовать):

RevisionQuery revisionQuery = new RevisionQuery(entry.RevisionDocument);
RevisionFeed revisions = service.Query(revisionQuery);

// TODO: choose the revision you want to publish, this sample selects the first one
RevisionEntry revision = (RevisionEntry)revisions.Entries[0];

revision.Publish = true;
revision.PublishAuto = true;

revision.Update();
2 голосов
/ 10 апреля 2012

Ваш вопрос уже получен ответом в этом сообщении , в котором содержится фрагмент кода Java. Для .NET вы должны быть в состоянии сделать что-то подобное:

AclEntry aclEntry = new AclEntry();
aclEntry.Role = new AclRole("reader");
aclEntry.Scope = new AclScope(AclScope.SCOPE_DEFAULT);

// documentEntry is the document that you want to publish and service is an 
// authorized DocumentsService object.
AclEntry insertedEntry = service.Insert(
    new Uri(documentEntry.AccessControlList), aclEntry);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...