Googleドライブアカウントにリンクしてファイルを任意のディレクトリにアップロードし、(直接の)ダウンロードリンクで対応できる簡単なアプリケーションを作成しています。 私は既にUser CredentialsとDriveServiceオブジェクトを持っていますが、良い例やドキュメントは見つけられません。 APIv3上でC#GoogleドライブAPIv3アップロードファイル
私はOAuth
をよく知らないので、今すぐbyte[]
コンテンツを含むファイルをアップロードする方法について、きれいで明確な説明を求めています。 Googleドライブアカウントにアプリケーションをリンクするための
私のコードは:(これは完全に動作するかどうかわからない)
UserCredential credential;
string dir = Directory.GetCurrentDirectory();
string path = Path.Combine(dir, "credentials.json");
File.WriteAllBytes(path, Properties.Resources.GDJSON);
using(var stream = new FileStream(path, FileMode.Open, FileAccess.Read)) {
string credPath = Path.Combine(dir, "privatecredentials.json");
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
"user",
CancellationToken.None,
new FileDataStore(credPath, true)).Result;
}
// Create Drive API service.
_service = new DriveService(new BaseClientService.Initializer() {
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
File.Delete(path);
マイコードは、これまでのアップロードのための:(明らかに動作しません)
public void Upload(string name, byte[] content) {
Google.Apis.Drive.v3.Data.File body = new Google.Apis.Drive.v3.Data.File();
body.Name = name;
body.Description = "My description";
body.MimeType = GetMimeType(name);
body.Parents = new List() { new ParentReference() { Id = _parent } };
System.IO.MemoryStream stream = new System.IO.MemoryStream(content);
try {
FilesResource.InsertMediaUpload request = _service.Files.Insert(body, stream, GetMimeType(_uploadFile));
request.Upload();
return request.ResponseBody;
} catch(Exception) { }
}
ありがとうございます!
こんにちは、Googleドライブv3のAPIにFileResourceのInsertMediaUploadが含まれていないため、コードはどのように機能しましたか?また、インサートはファイルで廃止予定です。https://developers.google.com/drive/v3/web/migration – SKLTFZ
ああ!申し訳ありません..あなたは正しいです。上記のコードはAPI v2用です。私は編集を行います。 –