Авторизация через ВКонтакте - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Бродил я по интернету, искал, пересмотрел кучу видео, но полезной информации 0. Проблема в следующем : у меня есть десктопное приложение, и я хочу для него сделать авторизацию через вк. Приложение создано, оно есть в вк, ID приложения есть. Строку, по которой нужно перенаправлять пользователя для данной авторизации я тоже нашел. Я делал так, создавал объект webBrowser (новая форма для этого всплывает), оно проходит авторизацию, то есть выбивает мне окошко ввода логин пароля, потом разрешение доступа к информации вконтакте, затем выводит следующее : "Пожалуйста, не копируйте данные из адресной строки для сторонних сайтов. Таким образом Вы можете потерять доступ к Вашему аккаунту." А дальше что делать, я понять не могу. Я пытался извлечь из браузера url после этого всего (ту, как я думал, заветную адресную строку), но оно имеет значение null. Как мне получить access token? Может быть кто-то писал приложения для ВК? МНе всего нужно получить ID, Имя пользователя, пол и т.п. К стенам всяким мне доступ не нужен. Буду признателен за подсказки или полезные ссылочки.
Нашёл как открыть стандартный браузер, и сделать всё там
Process.Start("https://oauth.vk.com/authorize?client_id=5527856&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends&response_type=token&v=5.52");
Но как извлечь данные? Я вероятно делаю что-то не так Так, как оказалось, все данные появились в адресной строке стандартного браузера Теперь, как извлечь URL из этого браузера? Ну а дальше дело не хитрое, пропарсить и поделом)
Так-с, нашёл, люди пишут что нужно юзать UI Automation, но как его юзать - не пишут, может кто-то подскажет? Вопрос всё ещё актуален
Up.
Решил проблему, всем спасибо

Решение задачи: «Авторизация через ВКонтакте»

textual
Листинг программы
public partial class VKOAuth : Form
    {
        string access;
        public VKOAuth()
        {
            InitializeComponent();
        }
        MainView Mview;
        public VKOAuth(MainView view)
        {
            InitializeComponent();
            Mview = view;
        }
 
        private void AuthLoad(object sender, EventArgs e)
        {  
            browser.Navigate("https://oauth.vk.com/authorize?client_id=*******&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends&response_type=token&v=5.52");
//Вместо звёздочек вставляем Ид своего приложения
        }
 
        private void WBNavigated(object sender, WebBrowserNavigatedEventArgs e)
        {
            access = browser.Url.ToString();
            if (access.Contains("access_token"))
            {
                Mview.token = access;
            }
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5
Похожие ответы