Я пытаюсь вставить событие календаря Google через учетную запись службы Google, созданную для приложения в моей консоли разработчика, но я постоянно получаю беспомощную 404 ответ на метод Execute. В обзоре консоли dev я вижу, что приложение получает запросы, потому что есть примеры ошибок в методе calendar.events.insert. Нет информации о том, что не удается. Мне нужен этот процесс для использования процесса учетной записи службы вместо OAuth2, чтобы не требовать аутентификации каждый раз, когда нужно создать событие календаря.Google API Calender v3 Событие Вставка через служебную учетную запись с использованием Asp.Net MVC
Я установил учетную запись службы, учитывая, что приложение имеет имя, имеет файл p12, указанный в проекте. Я также зашел в личный календарь и поделился с адресом электронной почты учетной записи службы. Кроме того, за пределами этого билета я создал дополнительное приложение через учетную запись администратора и предоставил доменный доступ к учетной записи службы только для получения той же беспомощной ошибки 404, что и сейчас.
Error Message: Google.Apis.Requests.RequestError
Not Found [404]
Errors [Message[Not Found] Location[ - ] Reason[notFound] Domain[global]
Любая помощь в определении разъединения или ошибки будет принята с благодарностью.
var URL = @"https://www.googleapis.com/calendar/v3/calendars/testcalendarID.com/events";
string serviceAccountEmail = "[email protected]";
var path = Path.Combine(HttpRuntime.AppDomainAppPath, "Files/myFile.p12");
var certificate = new X509Certificate2(path, "notasecret",
X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { Google.Apis.Calendar.v3.CalendarService.Scope.Calendar },
}.FromCertificate(certificate));
BaseClientService.Initializer initializer = new
BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Test App"
};
Google.Apis.Calendar.v3.CalendarService calservice = new Google.Apis.Calendar.v3.CalendarService(initializer);
string timezone = System.TimeZone.CurrentTimeZone.StandardName;
var calendarEvent = new Event()
{
Reminders = new Event.RemindersData()
{
UseDefault = true
},
Summary = title,
Description = description,
Location = location,
Start = new EventDateTime()
{
//DateTimeRaw = "2014-12-24T10:00:00.000-07:00",
DateTime = startDateTime,
TimeZone = "America/Phoenix"
},
End = new EventDateTime()
{
//DateTimeRaw = "2014-12-24T11:00:00.000-08:00",
DateTime = endDateTime,
TimeZone = "America/Phoenix"
},
Attendees = new List<EventAttendee>()
{
new EventAttendee()
{
DisplayName = "Joe Shmo",
Email = "[email protected]",
Organizer = false,
Resource = false
}
}
};
var insertevent = calservice.Events.Insert(calendarEvent, URL);
var requestedInsert = insertevent.Execute();
У меня проблема с кодом, который точно такой же, как у вас. Я получаю «unauthorized_client», описание: «неавторизованный клиент или область в запросе.», Uri: «» сообщение об ошибке. Что вы имеете в виду, когда говорите: «Вам нужно убедиться, что вы заходите в учетную запись google.Admin для ссылки на учетную запись службы ID клиента созданного приложения»? –