2017-02-24 1 views
0

J'ai programmé pour mon API a un compte de service dans mon application, ça fonctionne très bien, tous les connexions, télécharger, télécharger et supprimer des choses, mais quand j'utilisais le service utilisateur, tous les fichiers va à mon lecteur personnel, maintenant il va quelque part, je pense qu'il va à Google Cloud Platform ... La question est, je n'ai pas de compte là-bas, parce que vous devez payer pour l'utiliser, alors, est-ce que quelqu'un sait où vont tous ces fichiers?Google Drive Api avec le compte de service C#

Voici le code que je utilise pour faire un appel connexion

public static DriveService Connection(string path, string username, string p12Path) 
    { 

     var certificate = new X509Certificate2(p12Path, "XXXXXXXX", X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable); 

     ServiceAccountCredential credential = new ServiceAccountCredential(
      new ServiceAccountCredential.Initializer("g service account") 
      { 
       Scopes = Scopes 
      }.FromCertificate(certificate)); 

     DriveService service = new DriveService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = ApplicationName 
     }); 

     return service; 
    } 

Et voici la méthode que je utilise pour télécharger un fichier.

[Authorize] 
    public static Google.Apis.Drive.v3.Data.File Upload(DriveService service, string uploadFile, string name) 
    { 

     var body = new Google.Apis.Drive.v3.Data.File(); 
     body.Name = name; 
     body.MimeType = GetMimeType(uploadFile); 

     byte[] byteArray = System.IO.File.ReadAllBytes(uploadFile); 
     System.IO.MemoryStream stream = new System.IO.MemoryStream(byteArray); 
     FilesResource.CreateMediaUpload request = service.Files.Create(body, stream, GetMimeType(uploadFile)); 
     request.Upload(); 
     return request.ResponseBody; 
    } 

Alors, quelqu'un peut me aider?

Répondre

1

Comme indiqué dans ce thread, le code est le même et il n'y a aucune différence si vous utilisez Oauth2 ou un compte de service. Vous pouvez vérifier avec ce tutorial. À partir de ce related post, si vous souhaitez que les fichiers téléchargés figurent dans votre propre contenu Drive, vous devez utiliser vos propres informations d'identification de compte pour le SDK Drive. Cela n'a pas besoin d'impliquer l'interaction de l'utilisateur. Vous devez simplement acquérir un jeton d'actualisation une seule fois, puis l'utiliser ultérieurement pour générer le jeton d'accès pour Drive. J'espère que cela t'aides!

+0

Merci beaucoup m8, j'étais inquiet à ce sujet. Vous m'aidez vraiment: D –

+0

Vous pouvez accepter ma réponse si cela vous aide. :) – abielita

+0

Désolé, je pensais que je l'ai déjà fait. –