Google Calendar .Net API V3 域范围委派

本文关键字:范围 委派 V3 API Calendar Net Google | 更新日期: 2023-09-27 18:34:21

我正在使用,

asp.net 4.0,谷歌日历 API V3 和带有 IIS 6.0 的 Windows 2003 R2 网络服务器的环境,我们有自己的许可谷歌域名

我的应用需要访问很多人的 Google 日历并添加/删除/更新事件,之前我们使用 V2 并使用使用者密钥和使用者机密。 目前我的代码已迁移到 V3 版本并且可以工作,因为我使用的是使用 API 密钥和加密密钥文件的服务帐户类型。 但是我的客户不是很热衷,他们正在研究与V2版本类似的OAuth 2.0身份验证。

所以我的问题除了使用 V3 的服务帐户之外,还有什么最佳方法可以为一堆用户执行所有操作,这些用户应该像使用 V2 一样进行一次性身份验证?

谢谢MVM

Google Calendar .Net API V3 域范围委派

您可以使用

日历 API V3 和 Web 授权。在这种情况下,网页将被重定向到用户同意屏幕,然后最终用户应授权请求。

using System;
using System.Threading;
using System.Threading.Tasks;
using Google;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Calendar.v3;
using Google.Apis.Calendar.v3.Data;
using Google.Apis.Services;
namespace Calendar.Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                new ClientSecrets
                {
                    ClientId = "CLIENT_ID_HERE",
                    ClientSecret = "CLIENT_SECRET_HERE",
                },
                new[] { CalendarService.Scope.Calendar },
                "user",
                CancellationToken.None).Result;
            // Create the service.
            var service = new CalendarService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName = "Calendar API Sample",
            });
            ...
        }
    }
}