У меня есть авторизованный объект DriveService
. Есть ли способ получить электронную почту авторизованного пользователя? Я могу получить отображаемое имя, но не адрес электронной почты.Получить адрес электронной почты от API
OAuth2Authenticator auth = new OAuth2Authenticator<NativeApplicationClient>(provider, client => GetAuthorization(client));
DriveService service = new DriveService(
new BaseClientService.Initializer()
{
Authenticator = auth
}
);
Console.WriteLine(service_.About.Get().Fetch().User.DisplayName);
GetAuthorization
Функция открывает браузер и позволяет авторизоваться.
private static IAuthorizationState GetAuthorization(NativeApplicationClient arg)
{
IAuthorizationState state = new AuthorizationState(new[]
{
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/drive.readonly"
});
state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl);
using (LoginWindow login = new LoginWindow(arg.RequestUserAuthorization(state).ToString()))
{
if (login.ShowDialog() == DialogResult.OK)
{
return arg.ProcessUserAuthorization(login.AuthorizationToken, state);
}
}
throw new UnauthorizedAccessException();
}
Заранее спасибо.
Можете ли вы показать нам свои текущие коды? – Raptor
Добавлен исходный код. – axe
Вы используете Google Диск, чтобы получить информацию о пользователе? Вы в неправильном направлении. Пользовательский объект не содержит электронной почты. Ссылка: https://developers.google.com/drive/v2/reference/about/get – Raptor