Получение данных из соц сетей
Используем метод GetExternalAuthenticationSystemInfoList для получения списка соцсетей, который передаст вам идентификаторы, названия и картинки соцсетей (AuthenticationSystemInfoListAnswer).
Авторизация
Метод GetExternalAuthenticationInfo используется для инициации авторизации. В него передаем идентификатор соцсети и адрес возврата (такой, какой вы сможете перехватить в браузере), и в итоге получите адрес, который нужно открыть в браузере (AuthenticationInfoAnswer).
После того как пользователь авторизуется в соцсети, браузер вернется на указанный вами адрес, с некоторыми дополнительными параметрами.
- Если всё успешно, будет параметр sessionId, в котором готовая сессия пользователя. Запоминаем ее и используем далее.
- Если соцсеть не выдала email, то в параметрах будет error=email_required и contextId, тогда вам нужно запросить у пользователя почту и пароль. Затем передать (вместе с контекстом, полученным ранее) в метод ConfirmExternalAuthentication — а в ответ получите сессию (SessionIdAnswer).
- Если же произошла какая-то иная ошибка, то в параметрах будет просто error, его содержимое можно показать пользователю, или просто показать «Ошибка при авторизации».