2016-07-25 9 views
0

Da ich das Schließen des Browserfensters mithilfe der GoogleWebAuthorizationBroker.AuthorizeAsync-API nicht erfassen kann, folgte ich diesem Link (http://www.daimto.com/google-api-and-oath2/), um einen eingebetteten Browser zu erstellen und den Benutzer zu authentifizieren. Ich kann das Zugriffstoken nicht weiter verwenden, um eine Datei in Google Drive hochzuladen. Gibt es ein Beispiel, um mit dem obigen Link fortzufahren, um eine Datei von Google Drive hochzuladen/herunterzuladen?Laden Sie eine Datei mit eingebettetem Browser in Google Drive hoch C#

Grüße, Amrut

Antwort

0

Vom gleichen Autor gibt es eine Dokumentation, wie/Download-Dateien auf Google Drive hochladen.

Wie bei den meisten Google APIs müssen Sie authentifiziert werden, um eine Verbindung zu ihnen herzustellen. Dazu müssen Sie Ihre Anwendung zuerst in der Google Developer Console registrieren. Stellen Sie unter APIs sicher, die Google Drive API und Google Drive SDK zu aktivieren, wie immer vergessen Sie nicht, einen Produktnamen und eine E-Mail-Adresse auf dem Zustimmungsbildschirmformular hinzuzufügen.

Stellen Sie sicher, dass Ihr Projekt mindestens auf .net 4.0 festgelegt ist.

Fügen Sie das folgende NuGet Paket

PM> Install-Package Google.Apis.Drive.v2 

Um download eine Datei, die wir brauchen, um ihre Datei resorce die einzige Möglichkeit, zu wissen, dass die Datei-ID ist vom Files.List() Befehl wir früher zu gewöhnen.

public static Boolean downloadFile(DriveService _service, File _fileResource, string _saveTo) 
     { 
      if (!String.IsNullOrEmpty(_fileResource.DownloadUrl)) 
      { 
       try 
       { 
        var x = _service.HttpClient.GetByteArrayAsync(_fileResource.DownloadUrl); 
        byte[] arrBytes = x.Result; 
        System.IO.File.WriteAllBytes(_saveTo, arrBytes); 
        return true;     
       } 
       catch (Exception e) 
       { 
        Console.WriteLine("An error occurred: " + e.Message); 
        return false; 
       } 
      } 
      else 
      { 
       // The file doesn't have any content stored on Drive. 
       return false; 
      } 
     } 

_service.HttpClient.GetByteArrayAsync Mit wir können es die Download-URL der Datei passieren wir herunterladen möchten. Sobald die Datei heruntergeladen ist, ist es eine einfache Sache, die Datei auf die Festplatte zu schreiben.

Denken Sie daran, ein Verzeichnis zu upload eine Datei erstellen müssen Sie in der Lage sein, Google zu sagen, was es mime-type ist. Ich habe hier eine kleine Methode, die versucht, das herauszufinden. Sende ihm einfach den Dateinamen. Hinweis: Wenn Sie eine Datei auf Google Drive hochladen, wenn der Name der Datei denselben Namen wie eine bereits vorhandene Datei hat. Google Drive lädt es einfach hoch, die Datei, die dort war, wird nicht aktualisiert, Sie haben nur zwei Dateien mit demselben Namen. Es prüft nur basierend auf dem fileId nicht auf dem Dateinamen basiert. Wenn Sie eine Datei aktualisieren möchten, müssen Sie den Update-Befehl verwenden, den wir später überprüfen werden.

+0

Ich habe dieses Tutorial durchlaufen, aber das Problem ist hier in diesem Tutorial DriveService-Objekt durch den Aufruf AuthorizeAsync-API erstellt wird zum Hochladen/Herunterladen einer Datei verwendet. Aber ich habe nur Zugangstoken mit mir (http://www.daimto.com/google-api-and-oath2/). Wie kann ich weiter uploaden/download mit nur access token ist meine Frage? – user2734779

Verwandte Themen