Google API 1.8.1 - GoogleWebAuthorizationBroker.AuthorizeAsync在Windows服务下挂起

时间:2014-04-30 07:16:06

标签: google-api google-oauth google-api-dotnet-client

我使用GoogleWebAuthorizationBroker.AuthorizeAsync()为GoogleDrive授权用户。

它适用于控制台或UI应用程序,但如果该方法在Windows服务的上下文中执行,即使我之前在控制台模式下被授权并且JSON数据存储在提供的FileDataStore中,它也会挂起。

我的代码如下:

ClientSecrets secrets = new ClientSecrets { ClientId = CLIENT_ID, ClientSecret = CLIENT_SECRET };

FileDataStore store = new FileDataStore("MyFolder");

UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    secrets,
                    new string[] {
                        DriveService.Scope.DriveFile,
                        DriveService.Scope.Drive,
                    "user",
                    CancellationToken.None,
                    store).Result;

这种方法根本不能在Windows服务下运行,或者我遗漏了什么?

是否有另一种方法可以在Windows服务下授权用户? (对于这种情况,我对ServiceAccountCredential不感兴趣。)

提前致谢。

1 个答案:

答案 0 :(得分:1)

试试这个:打开服务。转到您的服务上的属性。在“登录”选项卡下,选中“#34;允许服务与桌面交互"。

这是任何服务都需要做任何与UI相关的事情。