Google日历.Net API V3域范围授权

时间:2013-10-08 15:06:24

标签: c# oauth-2.0 google-calendar-api

我正在使用,

asp.net 4.0,Google calendar api V3以及带有IIS 6.0的Windows 2003 R2网络服务器的环境,我们拥有自己的许可Google域

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

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

感谢, MVM

1 个答案:

答案 0 :(得分:0)

您可以使用Calendar 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",
            });

            ...
        }
    }
}