使用服务帐户检索我的日历事件时出现以下错误。
任何人都可以告诉我我做错了什么。
未找到Google.Apis.Requests.RequestError [404]错误[消息[未找到]位置[ - ]原因[notFound]域[全局]] //文件路径 string GoogleOAuth2CertificatePath = Server.MapPath(“GoogleStore \ My Project-a725fb0190fc.p12”);
// @developer... e-mail address.
string GoogleOAuth2EmailAddress = "939544675132-compute@developer.gserviceaccount.com";
// certificate password ("notasecret").
string GoogleOAuth2PrivateKey = "notasecret";
X509Certificate2 certificate = new X509Certificate2(GoogleOAuth2CertificatePath, GoogleOAuth2PrivateKey, X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(GoogleOAuth2EmailAddress)
{
Scopes = new[] { CalendarService.Scope.Calendar }
}.FromCertificate(certificate));
// Create the service.
service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName
});
ListRequest request = service.Events.List(calID);
request.ShowDeleted = false;
request.SingleEvents = true;
events = request.Execute();
感谢您提供任何可以帮助我的答案。
答案 0 :(得分:-1)
通常在遇到404: Not found
时找不到指定的资源。在某些情况下可能会发生这种情况。
根据官方Google文档,建议的操作是实施exponential backoff
。
Exponential backoff是网络应用程序的标准错误处理策略,其中客户端会在不断增加的时间内定期重试失败的请求。如果大量请求或繁重的网络流量导致服务器返回错误,则指数退避可能是处理这些错误的好策略。相反,它不是处理与速率限制,网络量或响应时间无关的错误的相关策略,例如无效的授权凭证或未找到文件的错误。
正确使用,指数退避可提高带宽使用效率,减少获得成功响应所需的请求数,并最大化并发环境中请求的吞吐量。
请注意,在每个请求中,您的应用程序都会发送到Google Calendar API must include an authorization令牌。该令牌还可识别您的Google应用程序。
以下是遇到404 not found
错误的相关SO票证:Error 404 when creating a calendar with Google Calendar Api v3 using c# .net