Получить ленту изменений для документа в Google Docs с помощью .NET

#c# #.net #google-api #google-docs #google-docs-api

#c# #.net #google-api #google-docs #google-docs-api

Вопрос:

Я пытаюсь получить ленту изменений для существующего документа в Google Docs (на самом деле мне просто нужно количество версий). Я использую приведенный ниже код и получаю GDataRequestException . Внутреннее исключение равно 404, в то время как строка ответа равна (идентификатор документа усечен):

 <errors xmlns='http://schemas.google.com/g/2005'>
  <error>
    <domain>GData</domain>
    <code>ResourceNotFoundException</code>
    <internalReason>Invalid document id: file:0BxwzFL2fD0</internalReason>
  </error>
</errors>
  

И вот код:

 var documentsService = new DocumentsService("myappname");
documentsService.SetAuthenticationToken(token);

var uri = string.Format("https://docs.google.com/feeds/default/private/full/{0}/revisions", Uri.EscapeDataString(resourceId));
var query = new DocumentsListQuery(uri);
var feed = documentsService.Query(query);
  

Ответ №1:

Похоже, что используемый вами идентификатор ресурса недействителен. Вместо того, чтобы создавать uri вручную, вам следует использовать свойство RevisionDocument экземпляра DocumentEntry, для которого вы хотите получить изменения:

 var uri = entry.RevisionDocument;
  

Ответ №2:

 var documentsRequest = new DocumentsRequest();

// ... do any authentication here..

var revisions = documentsRequest.Get<Google.Documents.Document>(entry.RevisionDocument).Entries;