C# Google Calendar API V3 игнорирует мою другую учетную запись (авторизация нескольких учетных записей)
Я уже давно борюсь с Google Calendar Api (V3), но теперь я могу создавать события и составлять список событий за определенный промежуток времени. Я делаю это в C# для создания настольного приложения.
У меня есть две разные учетные записи Google, и я хочу иметь возможность публиковать в каждом из этих календарей в отдельности. Используя приведенный ниже код (для первой учетной записи Google), я могу подключиться и опубликовать один календарь, но когда я использую тот же код в другой форме с файлом.json из второй учетной записи Google, он возвращается с ошибкой [404] не найден, когда я пытаюсь перечислить события в этом конкретном календаре. Он может показать список календарей, НО те, что перечислены из 1-й учетной записи Google. Я вышел из своих учетных записей Google в своем веб-браузере, но моя программа последовательно работает с 1-й учетной записью Google.
PS: для 2-й учетной записи Google у меня есть файл с другим именем.json, загруженный с сайта разработчика при входе в систему со 2-й учетной записью Google. Название приложения для второй учетной записи Google также называется по-разному.
public async Task<int> testZZquery()
{
UserCredential credential;
using (var stream = new FileStream("CMgcal_client_secrets.json", FileMode.Open, FileAccess.Read))
{
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(stream).Secrets,
new[] { CalendarService.Scope.Calendar },
"user", CancellationToken.None);
}
// Create the service.
var service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "mygcal",
});
1 ответ
Токены Oauth определяют, к какой учетной записи будет осуществляться доступ, это не секрет клиента или используемый вами проект. Вы можете счастливо использовать один и тот же проект в консоли для извлечения данных из обеих учетных записей. Однако вам нужно будет запросить отдельный токен OAuth для каждого из них, а затем использовать его для доступа к данным.
Документация по Oauth2 находится здесь: https://developers.google.com/accounts/docs/OAuth2