我已经为电子邮件管理实施了Gmail Api ..但在我的本地IIS上,它提供了以下错误
System.UnauthorizedAccessException拒绝访问“Google.Apis.Auth”路径。
我已经在项目文件夹和“〜\ AppData \ Roaming \ Google.Apis.Auth”上获得了“EveryOne”的许可,因为我已经阅读了某个地方,Gmail Api访问此文件夹以获取令牌/详细信息.. < / p>
以下代码我正在使用:
UserCredential凭证; using(var stream = new FileStream(Server.MapPath(“/”)+“client_secrets_desktop.json”,FileMode.Open,FileAccess.Read)) { credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(GoogleClientSecrets.Load(stream).Secrets, new [] {GmailService.Scope.GmailReadonly}, “user”,CancellationToken.None); }
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Gmail Test",
});
try
{
ListLabelsResponse response = service.Users.Labels.List("me").Execute();
//foreach (Label label in response.Labels.OrderBy(p => p.Name))
//{
// Console.WriteLine(label.Id + " - " + label.Name);
//}
}
提前致谢...
答案 0 :(得分:0)
有同样的问题并解决了将dataStore参数添加到
的问题GoogleWebAuthorizationBroker.AuthorizeAsync()
生成凭据的调用。那就是添加FileDataStore(存储)
credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
Scopes,
createdByUser,
CancellationToken.None,
new FileDataStore(storage)).Result;
其中&#39;存储&#39;是一个本地文件夹(例如/ App_Data /文件夹),其中ASP.NET用户应具有读/写权限。