自从2011年11月起,我在ASP.NET应用程序中使用旧版本的Calendar GData API (v1, v2),允许用户在提交用户名和密码后检索和/或创建日历活动,直到2014年11月17日之前谷歌决定关闭这个版本的API作为宣布Calendar GData API/Google Calendar Connectors deprecation我的Google身份验证问题
现在我坚持的Google APIS Calendar (v3)的新版本,它迫使我使用认证过程的不同场景代替传统之一。我完全不介意使用此版本的Calendar API,因为它支持所有必需的功能,但现在我不知道如何处理多个用户身份验证,以便使用其每个用户代码控制台注册的用户客户端ID和秘密。
所以我的问题是:有没有办法让用户使用他/她的正常凭据登录(通过用户名/密码或Google+ Sign Up功能),并绕过创建API项目,启用所需的API和通过ASP.net代码在控制台内创建新的用户凭证?
任何在C#ASP.net中制作的示例代码都非常感谢。
编辑:这是我的验证码我用
public static CalendarService Authenticate()
{
CalendarService service;
GoogleAuthorizationCodeFlow flow;
string json_File = System.Configuration.ConfigurationManager.AppSettings["Authentication_Path"];
string store_path = System.Configuration.ConfigurationManager.AppSettings["FileStore_Path"];
string url = System.Configuration.ConfigurationManager.AppSettings["Authent_URL"];
using (var stream = new FileStream(json_File, FileMode.Open, FileAccess.Read))
{
flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer
{
DataStore = new FileDataStore(store_path),
ClientSecretsStream = stream,
Scopes = new[] { CalendarService.Scope.Calendar }
});
}
var uri = url;
var result = new AuthorizationCodeWebApp(flow, uri, uri).AuthorizeAsync("TRAININGCALENDAR", CancellationToken.None).Result;
if (result.Credential == null)
{
GoogleCalendar_Bus.Main_Authentication(url, "", "");
}
// The data store contains the user credential, so the user has been already authenticated.
service = new CalendarService(new BaseClientService.Initializer
{
ApplicationName = "Calendar API Sample",
HttpClientInitializer = result.Credential
});
if (result.Credential != null)
{
service = new CalendarService(new BaseClientService.Initializer
{
ApplicationName = "Calendar API Sample",
HttpClientInitializer = result.Credential
});
}
return service;
}
感谢DalmTo提供此信息,但它确实没有任何意义,因为Google通过用户名和密码关闭了正常的身份验证过程,迫使每个用户(甚至是新用户访问我的应用程序)创建一个API项目,并且用户凭证开始使用Calendar API。那就是我的意思 !!!! – 2014-12-08 06:32:21