0

ich den Code unten verwenden, um alle Dateien von meinem Laufwerk Konto zu erhalten:Verwenden Sie Google Drive-api Dateien aus Google Drive in einer bestimmten Google Mail-Adresse anhängen

static void Main(string[] args) 
    { 
     UserCredential credential; 

     using (var stream = 
      new FileStream("client_secret.json", FileMode.Open, FileAccess.Read)) 
     { 
      string credPath = System.Environment.GetFolderPath(
       System.Environment.SpecialFolder.Personal); 
      credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json"); 

      credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
       GoogleClientSecrets.Load(stream).Secrets, 
       Scopes, 
       "user", 
       CancellationToken.None, 
       new FileDataStore(credPath, true)).Result; 
      Console.WriteLine("Credential file saved to: " + credPath); 
     } 

     // Create Drive API service. 
     var service = new DriveService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = ApplicationName, 
     }); 

     // Define parameters of request. 
     FilesResource.ListRequest listRequest = service.Files.List(); 
     listRequest.PageSize = 10; 
     listRequest.Fields = "nextPageToken, files(id, name)"; 

     // List files. 
     IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute() 
      .Files; 
     Console.WriteLine("Files:"); 
     if (files != null && files.Count > 0) 
     { 
      foreach (var file in files) 
      { 
       Console.WriteLine("{0} ({1})", file.Name, file.Id); 
      } 
     } 
     else 
     { 
      Console.WriteLine("No files found."); 
     } 
     Console.Read(); 

    } 


} 

danach ausgeführt wird, erhalte ich: enter image description here

das ist großartig, ich bekomme alle meine Dateien, die ich in meinem Laufwerk Konto habe.

Jetzt möchte ich jede Datei nehmen und anhängen und an eine bestimmte Google Mail-Adresse senden.

irgendwelche Ideen, was ich jetzt tun sollte?

Antwort

0

Dies hängt möglicherweise noch von Ihrer Implementierung ab, aber Sie können die Google Mail-API verwenden, um die Laufwerksdateien anzuhängen und an bestimmte Benutzer zu senden.

Hier ist ein Code-Snippet für das Senden von Mail:

using Google.Apis.Gmail.v1; 
using Google.Apis.Gmail.v1.Data; 

// ... 

public class MyClass { 

    // ... 

    /// <summary> 
    /// Send an email from the user's mailbox to its recipient. 
    /// </summary> 
    /// <param name="service">Gmail API service instance.</param> 
    /// <param name="userId">User's email address. The special value "me" 
    /// can be used to indicate the authenticated user.</param> 
    /// <param name="email">Email to be sent.</param> 
    public static Message SendMessage(GmailService service, String userId, Message email) 
    { 
     try 
     { 
      return service.Users.Messages.Send(email, userId).Execute(); 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine("An error occurred: " + e.Message); 
     } 

     return null; 
    } 

    // ... 

} 

Hier einige verwandte Referenzen, die Ihnen helfen können:

Hoffe das hilft.

+0

aber dafür muss ich jede Datei von meinem Google Drive-Konto auf meinen Computer mit google-drive-api herunterladen und dann zum Anhängen jeder Datei muss ich gmail-api verwenden. bin ich richtig? –

Verwandte Themen