Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
19 / 8 / 7
Регистрация: 26.12.2013
Сообщений: 167
1

Авторизация в ВК с помощью WebClient вместо WebBrowser

22.02.2016, 15:17. Показов 2013. Ответов 3

Кажется мне, что на 100% отказаться от WebBrowser не получится, накидал такой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
string token;
            MyWebClient wc = new MyWebClient();
            string html = wc.DownloadString("https://oauth.vk.com/authorize?client_id=" + client_id + "&scope=" + scope +
                "&display=page&response_type=token&v=5.44");
            token = wc.ResponseUri.ToString().Split(new char[] { '=', '&' })[1];
            if (token == client_id || token.Length < 10)
            {
                MessageBox.Show("Вывод:"+token+"\nНужно дать разрешения");
                WebBrowser wb = new WebBrowser();
                wb.ScriptErrorsSuppressed = true;
                wb.DocumentText = html;
                Form f = new Form();
                f.Controls.Add(wb);
                wb.Dock = DockStyle.Fill;
                f.Size = new System.Drawing.Size(400, 300);
                f.ShowDialog();
                wc.DownloadString("https://oauth.vk.com/authorize?client_id=" + client_id + "&scope=" + scope +
                "&display=page&response_type=token&v=5.44");
            }
            else
                MessageBox.Show("Успешно авторизовано");
            return token;
Это чтобы WebBrowser создавался только если не получилось авторизоваться (когда нужно дать разрешение, т.е. нажать кнопку на странице).
Но выходит у меня пустая страница почему-то
В общем, нужны подсказки, как получить токен без или с минимальным использованием WebBrowser

Класс MyWebClient - это WebClient с добавлением ResponseUri, возвращающего Uri страницы, как понятно из названия
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.02.2016, 15:17
Ответы с готовыми решениями:

Ссылки для скачивания с помощью WebClient.DownloadFile и WebClient.DownloadFileAsync
Ссылки какие должны быть, для скачивания webClient.DownloadFile и webClient.DownloadFileAsync Не...

webclient или webBrowser
Проблема вот какая возникла и никак не могу найти как такое решить. Есть сайт игры танков, там...

В чем отличие WebClient и WebBrowser
Так в чем же?

Подключение куков WebBrowser к WebClient
как это можно сделать ?

3
101 / 105 / 62
Регистрация: 19.11.2015
Сообщений: 380
22.02.2016, 22:11 2
Вот,держи, сам его использую в своем проекте
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public string GetBr(string login, string password)
        {
            try
            {
                string url = "https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=" + login + "&password=" + password + "&captcha_key=&captcha_sid=537779722437";
                string html = string.Empty;
                string br_pattern = ":"(.*)",";
                HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url);
                HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                StreamReader sr = new StreamReader(myResponse.GetResponseStream(), Encoding.GetEncoding(65001));
                html = sr.ReadToEnd();
                Match br;
                br = Regex.Match(html, br_pattern);
                return br.Groups[1].ToString();
            }
            catch
            {
                return "Bad";
            }
        }
2
19 / 8 / 7
Регистрация: 26.12.2013
Сообщений: 167
23.02.2016, 14:26  [ТС] 3
Цитата Сообщение от 1231231ghacking Посмотреть сообщение
Вот,держи, сам его использую в своем проекте
Не знал про https://oauth.vk.com/token, теперь будет проще

Добавлено через 3 часа 31 минуту
Метод хороший, но есть небольшой минус - он доступен только доверенным приложениям Вконтакте, а как сделать доверенным свое приложение - непонятно
0
101 / 105 / 62
Регистрация: 19.11.2015
Сообщений: 380
25.02.2016, 18:20 4
Лучший ответ Сообщение было отмечено depravity как решение

Решение

В моем методе вот эти данные
C#
1
client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH
из официального приложения, так что они не запрещают пользоваться их данными, спрашивал у ТП
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2016, 18:20

Получить html страницы не используя webBrowser и WebClient
Следующий код нормально получает html страницы, но там написано, что используется устаревший...

Отправить cookie с помощью WebClient
подскажите а можно ли отправить кукисы таким способом WebClient client = new WebClient();...

Как загрузить файлы на сервер с помощью WebClient
Как загрузить файлы (.cdr) на сервер с помощью WebClient? Vb 2010. Использую openserver. Дядя...

Авторизоваться на сайте через WebBrowser и работать на нем через WebClient
Я тут подумал, можно ли сделать так: авторизоваться через веббраузер и после этого работать на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru