2017-06-19 2 views
0

Ich versuche, die OneDrive-API zu verwenden, und ich habe meine App über ihre Application Registration Portal erfolgreich registriert. Ich kann erfolgreich anrufen die Javascript FilePicker SDK to upload and download filesREST-Aufruf an die MS Graph/OneDrive-Methode mit OAuth2

Das zeigt, dass ich meine App richtig registriert und die richtige app/client-id's hat.

Jetzt möchte ich die REST-Dienste zum Hochladen und Herunterladen von Dateien verwenden, bin mir aber nicht sicher, wie ich die Authentifizierung senden soll und ich weiß nicht, wie ich den Anruf an die richtige URL senden soll.

Meine erste Frage ist: Wie kann ich das Token verwenden, das ich im Registrierungsdienst erstellt habe, um einen REST-Aufruf zu tätigen?

Meine zweite Frage ist: Welche Syntax sollte ich verwenden, um eine Datei hochzuladen? Ich weiß nicht, wohin ich die URL setzen soll, um den Anruf zu tätigen.

Die PUT-Dokumentation für ihre Upload here

<script type="text/javascript"> 
     function launchSaveToOneDrive(){ 
      var xhttp = new XMLHttpRequest(); 
      //Authorization: bearer {token} 
      xhttp.open("PUT", "/drive/items/{parent-id}:/{filename}:/content", false); 
      xmlhttp.setRequestHeader("Authorization", "Bearer-xxxxxxxxxxxxxxxxxxx"); 
      xhttp.setRequestHeader("Content-type", "text/plain"); 
      xhttp.send(); 
      var response = JSON.parse(xhttp.responseText); 
     } 
     </script> 

Antwort

1

Eine Möglichkeit gefunden, die Microsoft Graph JavaScript SDK zu verwenden, die mit REST-Anrufe einschließlich Hochladen von Dateien helfen kann, durch die MS Graph zu Microsoft Onedrive. Die Bibliothek arbeitet mit clientseitigen JavaScript- und Node für JavaScript-Server-Apps.

Überprüfen Sie die Browser folder unter Beispiele, um zu sehen, wie Sie das SDK in einer Client-App verwenden. Das Hochladen einer Datei würde in etwa so aussehen (siehe den Link für den vollständigen Code):

// file variable is from the contents of an input field for example 
    var file = document.querySelector('input[type=file]').files[0]; 

    // after user selects a file from the file picker 

    client 
     .api('/me/drive/root/children/Book.xlsx/content') 
     .put(file, (error, response) => { 
      // supports callbacks and promises 
     });