Como fornecer credenciais programaticamente para usar a API do Google Drive em c # ou vb.net?
Eu criei um programa que usa a API do Google Drive para ler dados de um arquivo no Google Drive.
na primeira vez em que você executa o aplicativo, ele abre um navegador da web pedindo para fazer login na conta do Google Drive.
Desejo fornecer ao aplicativo o nome de usuário e a senha para que ele obtenha as credenciais automaticamente, para que os usuários não precisem saber o nome de usuário e a senha da minha conta do Google Drive.
aqui está o código em vb.net:
Dim credential As UserCredential
Using stream = New FileStream("client_secret.json", FileMode.Open, FileAccess.Read)
Dim credPath As String = 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)
End Using
//I want to provide the username and password in the app so that it doesn't open a web browser asking for them
' Create Drive API service.
Dim initializer = New BaseClientService.Initializer
initializer.HttpClientInitializer = credential
initializer.ApplicationName = ApplicationName
Dim service = New DriveService(initializer)
' Define parameters of request.
Dim listRequest As FilesResource.ListRequest = service.Files.List()
listRequest.PageSize = 10
listRequest.Fields = "nextPageToken, files(id, name)"
' List files.
Dim files As IList(Of Google.Apis.Drive.v3.Data.File) = listRequest.Execute().Files
aqui está o código em c #:
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);
}
//I want to provide the username and password in the app so that it doesn't open a web browser asking for them
// 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;