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

Другие вопросы по тегам