2015-12-26 2 views
-2

Я пытаюсь узнать о API-интерфейсе Google, когда я пишу небольшую программу. Я использую класс GoogleWebAuthorizationBroker для запроса пользователю давать разрешения для приложения, но недостатком является то, что он автоматически открывает новую вкладку браузера в Chrome (в качестве примера):Открытие URL-адреса авторизации OAuth2 в контроле браузера

const string ApplicationName = "TestApp"; 
string[] scopes = { DriveService.Scope.Drive }; 

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"); 
    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
     GoogleClientSecrets.Load(stream).Secrets, 
     scopes, 
     "user", 
     CancellationToken.None, 
     new FileDataStore(credPath, true)).Result; 
    Console.WriteLine("Credential file saved to: " + credPath); 
} 

Я хотел бы, если знаю, это способ получить AuthorizationURL, чтобы я мог показать диалог браузера с ним и, следовательно, получить соответствующий токен.

Как это можно сделать? Заранее спасибо.

ответ

1

В настоящее время, как написано клиентской библиотекой, он автоматически откроет его в браузере по умолчанию.

Для этой функции уже существует запрос на проблему. GoogleWebAuthorizationBroker in embedded browser? #547

: В настоящее время нет способа получить URL-адрес авторизации, чтобы вы могли самостоятельно сеять диалоговое окно. Клиентская библиотека представляет собой проект с открытым исходным кодом, поэтому вы можете его добавить.