2017-02-24 14 views
0

私のAPIには、自分のアプリケーションにサービスアカウントがあり、正常に動作し、すべての接続、アップロード、ダウンロード、削除ができますが、ユーザーサービスを使用すると、私の個人的なドライブに行く、今どこかに行く、私はそれがGoogle Cloud Platformに行くと思う... あなたはそれを使用するために支払う必要があるので、質問は、私はそこに何もないこれらのファイルがどこにあるのかを知っていますか?ここでGoogleドライブApiサービスアカウントC#

私が作るために使っているコードは、接続が

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; 
    } 

そして、ここで私は、ファイルをアップロードするために使用しているメソッドを呼び出します。

[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; 
    } 

だから、誰も私を助けることができますか?

答えて

1

threadに記載されているとおり、コードは同じで、Oauth2またはサービスアカウントを使用している場合は違いはありません。これはtutorialで確認できます。また、related postから、アップロードしたファイルを自分のドライブのコンテンツに保存する場合は、ドライブSDKに独自のアカウント情報を使用する必要があります。これは、ユーザーのやりとりを伴う必要はありません。リフレッシュトークンを1回取得するだけで、後でそれを使用してドライブのアクセストークンを生成するだけです。お役に立てれば!

+0

ありがとうm8、私はそれについて心配していた。あなたは本当に私を助けます:D –

+0

私の答えが役に立ったらそれを受け入れるかもしれません。 :) – abielita

+0

申し訳ありませんが、私はすでにそれをやったと思いました。 –

関連する問題