2016-04-28 22 views
2

我尝试使用此代码为Google.Apis.Auth.OAuth2库中的应用程序获取Google Refresh令牌。 当我使用它在本地主机它与Access工作完美,但是当我使用它的Azure的站点下它会抛出System.AggregateException被拒绝的InnerException。获取.NET Google API RefreshToken - 访问被拒绝

UserCredential credential = 
GoogleWebAuthorizationBroker.AuthorizeAsync(
    new ClientSecrets() 
    { 
     ClientId = "<client_id>", 
     ClientSecret = "<client_secret>" 
    }, 
    new string[] { }, 
    Environment.UserName, 
    CancellationToken.None, 
    null 
).Result; 

string refreshToken = credential.Token.RefreshToken; 

内部异常是:

的InnerException消息:访问在System.Net.HttpListener.SetupV2Config() 被拒绝在System.Net.HttpListener.Start() 在Google.Apis .Auth.OAuth2.LocalServerCodeReceiver.d__6.MoveNext() ---以前位置抛出异常的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) at System.Runtime .CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotificat离线(任务任务) at Google.Apis.Auth.OAuth2.AuthorizationCodeInstalledApp.d__8.MoveNext() ---上一个位置抛出异常的堆栈跟踪结束--- at System.Runtime.CompilerServices.TaskAwaiter。 ThrowForNonSuccess(任务任务) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__4.MoveNext() ---以前位置的堆栈跟踪结束,其中异常被抛出--- 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) at Google.Apis.Auth.OAuth2.GoogleWebAutho rizationBroker.d__1.MoveNext()

是否有任何其他方式获得刷新令牌?

谢谢!

回答

0

您是否已将Azure URI配置为在Google控制台API管理器中授权?

+0

是的,当然,我已将http:// .azurewebsites.net设置为授权JavaScript来源。我已经为网站和API做好了准备。 我使用.NET后端与System.Web.Http.ApiController,因为它只是数据提供程序API后端。 – Spuriga