2016-12-01 2 views
0

Ist es möglich, die JSON-Darstellung eines Google-Dokuments über eine API herunterzuladen, zu ändern und hochzuladen?Wie kann ich die JSON-Darstellung eines Google-Dokuments herunterladen/hochladen?

Ich versuche, eine serverseitige App dazu zu schreiben. Mit Google Doc. Meine ich Dateien, die den Rich-Text-Bearbeitungsfunktionen gemäß https://docs.google.com zugrunde liegen.

Soweit ich verstanden habe, sollte die RealTime API mir erlauben, die JSON-Repräsentation eines Dokuments mit einer GET-Anfrage herunterzuladen und eine neue JSON-Datei mit einer PUT-Anfrage hochzuladen. Aus der Dokumentation klingt das ideal. Antworten von GET-Anforderungen enthalten jedoch null im Datenfeld. Ich verstehe, dass dies daran liegt, dass mein OAuth2.0 app is not the same app that created the document. Ich bin mir nicht sicher, ob/wie ich das beheben könnte, wenn ich möchte, dass die Dateien wie jedes andere Google-Dokument behandelt werden (wie oben definiert).

Die Drive-API ermöglicht es mir, eine Datei mit GET request herunterzuladen, die unterstützten MIME-Typen enthalten jedoch JSON nicht. Ich bin mir bewusst, dass ich versuchen könnte, sie zu konvertieren (z. B. über eine Bibliothek wie die ausgezeichnete Pandora), aber dies erfordert eine verlustreiche und unvorhersehbare Verarbeitung, um zu erraten, welche Google-Dokumentendarstellung z. Parsing von MS Word-Dokumenten (ew).

Gibt es eine Möglichkeit zum direkten Import von & Exportdokumenten in Googles JSON-Darstellung?

Antwort

0

Möglicherweise möchten Sie versuchen, die Realtime API in einem nicht authentifizierten Modus, genannt in-memory mode die Sie mit der API ohne Konfiguration oder Login zu beginnen können.

Zum Erstellen einer nicht authentifizierten App können Sie die in Google Realtime API Quickstart angegebenen Schritte aufrufen und versuchen. Sie können den folgenden Code einfach in eine neue Datei kopieren und dann in einem Browser öffnen.

<!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> 

Hoffe, dass hilft!

+0

Hey, vielen Dank für Ihre Antwort. Laut meiner Frage habe ich das schon einmal überprüft, bin aber zu dem Schluss gekommen, dass die RealTime-API zwar zur Bearbeitung beliebiger Zustände in benutzerdefinierten Anwendungen verwendet werden kann (wie Sie es veranschaulichen), aber nicht zum Bearbeiten von Dateien verwendet werden kann. Google Docs "App, im Sinne von https://docs.google.com, also Google entspricht MS Word-Dokumenten. Ist das richtig oder fehlt mir etwas? –

Verwandte Themen