Я пытаюсь отправить файлы с помощью Google Диска Google, но я не могу найти документацию о том, как выполнять C# Загрузка файлов с использованием учетной записи службы проверки подлинности.Google API для загрузки файлов с использованием учетной записи службы проверки подлинности
Я загрузил библиотеку Daimto, однако он загружает с использованием класса DriveService, когда мы используем аутентификацию ClientId и ClientSecret. Но используя аутентификацию для службы учетной записи, он возвращается в класс PlusService и не находит способ загружать файлы таким образом.
Может кто-нибудь мне помочь? С наилучшими пожеланиями
Использование аутентификации учетной записи службы
public PlusService GoogleAuthenticationServiceAccount()
{
String serviceAccountEmail = "[email protected]account.com";
//var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
var certificate = new X509Certificate2(@"key.p12", "notasecret", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { PlusService.Scope.PlusMe }
}.FromCertificate(certificate));
// Create the service.
var service = new PlusService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Plus API Sample",
});
return service;
}
Использование аутентификации ClientId и ClientSecret
public DriveService GoogleAuthentication(string userClientId, string userSecret)
{
//Scopes for use with the Google Drive API
string[] scopes = new string[] { DriveService.Scope.Drive, DriveService.Scope.DriveFile };
// here is where we Request the user to give us access, or use the Refresh Token that was previously stored in %AppData%
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(new ClientSecrets { ClientId = userClientId, ClientSecret = userSecret }, scopes, Environment.UserName, CancellationToken.None, new FileDataStore("Daimto.GoogleDrive.Auth.Store")).Result;
DriveService service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Drive API Sample"
});
return service;
}
метод Daimto класс, который делает загрузить файл на Google диск DaimtoGoogleDriveHelper.uploadFile (_service, FileName, item.NomeArquivo, directoryId);
Как вы можете видеть, библиотека Daimto имеет способ загрузки, однако использует параметр _service, который является типом DriveService, который является тем, что возвращается методом GoogleAuthentication. Но метод GoogleAuthenticationServiceAccount возвращает тип PlusService и несовместим с типом DriveService.
Где вы загрузили "Daimto" Библиотеку? ничего не мог найти об этом. Этот другой вопрос может помочь вам в этом: http://stackoverflow.com/questions/16324093/how-use-google-oauth2-using-serviceaccount-in-net – Gerardo
Не совсем уверен, что я бы назвал его библиотекой больше образца проект https://github.com/LindaLawton/Google-Dotnet-Samples/tree/master/Google-Drive – DaImTo
кстати она, но все равно :) – DaImTo