Я использую форму класса GoogleWebAuthorizationBroker .Net библиотеки клиента, который хранит маркер доступа и маркер обновления в хранилище файлов, например:GoogleWebAuthorizationBroker не возвращается автоматически новый маркер доступа от обновления маркера
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret },
scopes, "XXXXXX", CancellationToken.None
,new FileDataStore("XXXXXX")
).Result;
Если работы , но через один час, когда токен доступа недействителен, при повторном запуске AuthorizeAsync токены доступа, возвращаемые в объекте «учетные данные», не обновляются, как и должно быть (я щекотал значения в режиме отладки и токена доступа все тот же, не обновляется). Даже браузер не запускается, чтобы попросить пользователя предоставить разрешение (я использую его для API контактов Google).
Я использую OAuth2 с .Net клиентской библиотекой google для аутентификации, поскольку это намного проще, чем аутентификация с помощью библиотеки gdata. Тем не менее я использую старый gdata lib для обновления контактов gmail (новый API-интерфейс контакта не позволяет изменять данные контактных данных YET).
Есть ли проблема с смешиванием этих API? Должен ли я аутентифицировать библиотеку gdata?
Thanx.
Thanx DaImto. Я использовал код в вашем блоге http://www.daimto.com/google-contacts-with-c/ для использования запросов gdata. Фактически вы упомянули в этом блоге в разделе комментариев, которое вы проверили в режиме отладки, и увидите, что через час обновляется токен acces, возвращенный AuthorizeAsync.Я использовал тот же код, и это не так. Зачем ? Что касается обходного пути People.get, можете ли вы указать пример кода C#? –
, вы можете попробовать сыграть с людьми api. https://developers.google.com/people/api/rest/v1/people.connections, похоже, читается из контактов google. – DaImTo
Как создать объект «службы»? –