Я использую старую версию Google Calendar GData API (v1, v2) с ноября 2011 года в своих приложениях ASP.NET, позволяя пользователям извлекать и/или создавать события календаря после отправки их имен пользователей и паролей, и это отлично работает до 17 ноября 2014 года как раз перед Google решил закрыть эту версию API, как было объявлено Calendar GData API/Google Calendar Connectors deprecationМоя проблема с аутентификацией Google
Теперь я застрял с новой версией Google APIS Calendar (v3), которая заставляет меня использовать другой сценарий процесса аутентификации вместо традиционного. Я вообще не возражаю против использования этой версии API календаря, поскольку он поддерживает все необходимые функции, но теперь я не знаю, как обрабатывать аутентификацию нескольких пользователей, чтобы использовать их идентификатор и секретный код своего клиента, которые регистрируются для каждой пользовательской кодовой консоли.
Итак, мой вопрос: есть ли способ, чтобы пользователь мог войти с его/ее обычными учетными данными (либо по имени пользователя/паролю, либо в функции входа в Google+), либо в обход процесса создания API-проекта, в результате чего необходимые API-интерфейсы и создание новых учетных данных пользователя внутри консоли через код ASP.net?
Любой образец кода, сделанный на C# ASP.net, высоко оценен.
EDIT: Вот мой код проверки подлинности я использую
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 и User Credentials, чтобы начать использовать API календаря. Это то, что я имею в виду !!!! –