2016-12-01 6 views
0

Можно ли загружать, изменять и загружать JSON-представление документа Google через API?Как загрузить/загрузить JSON-представление документа Google?

Я пытаюсь написать приложение на стороне сервера, чтобы сделать это. Документом Google я имею в виду файлы, лежащие в основе функций редактирования полнотекстового текста, в соответствии с https://docs.google.com.

Насколько я понял, API RealTime должен позволить мне загрузить json-представление документа с помощью запроса GET и загрузить новый JSON-файл с запросом PUT. Из документации это звучит идеально. Однако ответы из запросов GET содержат null в поле данных. Я понимаю, что это потому, что мой OAuth2.0 app is not the same app that created the document. Я не уверен, могу ли я исправить это, если я хочу, чтобы файлы обрабатывались так же, как и любой другой документ Google (как определено выше).

API-интерфейс Drive позволяет мне скачать файл с GET request, однако поддерживаемые mime-типы не включают JSON. Я знаю, что я мог бы попытаться их преобразовать (например, через библиотеку, такую ​​как отличный pandoc), но для этого требуется потерять и непредсказуемую обработку, чтобы попытаться угадать, что представление документа Google может быть через, например. разбор документов MS Word (ew).

Есть ли способ прямого импорта & экспортных документов в собственное представление JSON от Google?

ответ

0

Вы можете попробовать использовать Realtime API в неаутентифицированному режиме, называемый in-memory mode, который позволяет начать работу с API без какой-либо конфигурации или входа в систему.

Чтобы создать приложение, не прошедшее проверку подлинности, вы можете посетить и попробовать шаги, указанные в Google Realtime API Quickstart. Вы можете просто скопировать следующий код в новый файл, а затем открыть его в браузере.

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Google Realtime Quickstart</title> 

    <!-- Load Styles --> 
    <link href="https://www.gstatic.com/realtime/quickstart-styles.css" rel="stylesheet" type="text/css"/> 

    <!-- Load the Realtime API JavaScript library --> 
    <script src="https://apis.google.com/js/api.js"></script> 
    </head> 
    <body> 
    <main> 
     <h1>Realtime Collaboration Quickstart</h1> 
     <p>Welcome to the quickstart in-memory app!</p> 
     <textarea id="text_area_1"></textarea> 
     <textarea id="text_area_2"></textarea> 
     <p>This document only exists in memory, so it doesn't have real-time collaboration enabled. However, you can persist it to your own disk using the model.toJson() function and load it using the model.loadFromJson() function. This enables your users without Google accounts to use your application.</p> 
     <textarea id="json_textarea"></textarea> 
     <button id="json_button" class="visible">GetJson</button> 
    </main> 
    <script> 
     // Load the Realtime API, no auth needed. 
     window.gapi.load('auth:client,drive-realtime,drive-share', start); 

     function start() { 
     var doc = gapi.drive.realtime.newInMemoryDocument(); 
     var model = doc.getModel(); 
     var collaborativeString = model.createString(); 
     collaborativeString.setText('Welcome to the Quickstart App!'); 
     model.getRoot().set('demo_string', collaborativeString); 
     wireTextBoxes(collaborativeString); 
     document.getElementById('json_button').addEventListener('click', function(){ 
      document.getElementById('json_textarea').value = model.toJson(); 
     }); 
     } 

     // Connects the text boxes to the collaborative string. 
     function wireTextBoxes(collaborativeString) { 
     var textArea1 = document.getElementById('text_area_1'); 
     var textArea2 = document.getElementById('text_area_2'); 
     gapi.drive.realtime.databinding.bindString(collaborativeString, textArea1); 
     gapi.drive.realtime.databinding.bindString(collaborativeString, textArea2); 
     } 
    </script> 
    </body> 
</html> 

Надеюсь, что это поможет!

+0

Эй, большое спасибо за ответ. Согласно моему вопросу, я уже проверил это раньше, но пришел к выводу, что, хотя RealTime API можно использовать для управления произвольным состоянием в пользовательских приложениях (как вы проиллюстрируете), он не может использоваться для редактирования файлов, созданных с помощью " Google Docs "в смысле https://docs.google.com этого слова, то есть Google эквивалент документов MS Word. Это правильно, или я чего-то не хватает? –