我已经很久没有成功了。 YouTube开发人员的示例似乎很简单,但我总是遇到同样的两个错误:
拒绝访问(在IIS上运行时)
或
redirect_uri_mismatch(在Visual Studio中运行时)
这是我总是失败的代码:
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
// This OAuth 2.0 access scope allows an application to upload files to the
// authenticated user's YouTube channel, but doesn't allow other types of access.
new[] { YouTubeService.Scope.YoutubeUpload },
"user",
CancellationToken.None
);
}
我有: - 更新了clients_secret并将其与Javascript版本一起使用,所以我很确定这不是问题 - 尝试创建自定义FileDataStore以添加为另一个参数
以下是调试时获得的Access Denied错误的更多详细信息。一旦我到达“凭证”行,它就会出现。
at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 在Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(任务任务) at Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.d__1.MoveNext()in c:\ ApiaryDotnet \ default \ Src \ GoogleApis.Auth.DotNet4 \ OAuth2 \ GoogleWebAuthorizationBroker.cs:第59行 ---从抛出异常的先前位置开始的堆栈跟踪结束--- 在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务) 在System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() 在_Default.d__1.MoveNext()的c:\ Users \ Michael \ documents \ visual studio 2015 \ websites \ website1 \ Default.aspx.cs:第46行
这就是凭证出错之前出现在凭证的属性中的内容:
ReadTimeout ='stream.ReadTimeout'引发了类型'System.InvalidOperationException'的异常 WriteTimeout ='stream.WriteTimeout'引发了类型'System.InvalidOperationException'int {System.InvalidOperationException}
的异常