在浏览器控件中打开OAuth2授权URL

时间:2015-12-26 16:45:58

标签: c# google-api-dotnet-client google-api-v3

我正在尝试在编写一个小程序时了解Google的Drive API。我使用GoogleWebAuthorizationBroker类来要求用户授予应用权限,但缺点是它会自动在Chrome中打开一个新的浏览器标签(例如):

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 个答案:

答案 0 :(得分:1)

目前,客户端库的编写方式将自动在默认浏览器中打开它。

此功能已存在问题请求。 GoogleWebAuthorizationBroker in embedded browser? #547

回答:目前无法获取授权网址,因此您可以自行播放对话框。客户端库是一个开源项目,因此您可以添加它。