0

我一直在努力使用 Google Calendar Api (V3),但我现在可以创建事件并列出给定时间跨度的事件。我在 C# 中这样做是为了创建一个桌面应用程序。

我有两个不同的谷歌帐户,我希望能够分别发布到每个日历。使用下面的代码(对于第一个 google 帐户),我可以连接并发布到一个日历,但是当我在不同的表单上使用相同的代码和来自第二个 google 帐户的 .json 文件时,它会返回错误当我尝试列出该特定日历中的事件时未找到 [404]。它能够显示日历列表,但列出的日历来自第一个 google 帐户。我已经在我的网络浏览器中注销了我的谷歌账户,但我的程序一直在使用第一个谷歌账户。

PS:对于第二个 google 帐户,我有一个不同名称的 .json 文件,在使用第二个 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",
        });
4

1 回答 1

0

决定访问哪个帐户的是 Oauth 令牌,而不是客户端密码或您正在使用的项目。您可以愉快地在控制台中使用同一个项目从两个帐户中检索数据。但是,您需要为它们中的每一个请求一个单独的 OAuth 令牌,然后使用它来访问数据。

Oauth2 文档在这里:https ://developers.google.com/accounts/docs/OAuth2

于 2014-10-27T22:24:05.310 回答