Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> VK/Вконтакте авторизация 
:(
    Опции темы
lugaru
Дата 6.8.2012, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.11.2011

Репутация: нет
Всего: нет



Добры день всем. заранее прошу прощения за избитую тему но в опор не могу решить. Смотрел в нете, но что-то не сильно конкретно нашел.
Пишу скрип для ВК, но сначала надо меня авторизирывать как пользывателя - с этим и проблема, так как с таким раньше не работал и начал рыть по этому поводу. Что я вынес со всего:

1) взял последний HttpClent 4
2) Для авторизации и дальнейшего использывания АРI Вконтакте нужно отправить запрос 
Отправляю запрос вида:


client_id=НИКНЕЙМ - мой айди/никнейм страницы исходя с http://vk.com/НИКНЕЙМ
scope=friends - согласно с ЭТИМ
redirect_uri=http://oauth.vk.com/blank.html - согласно с:  
Цитата

REDIRECT_URI – адрес, на который будет передан access_token. Если Вы разрабатываете браузерное Javascript-приложение (обращаетесь к API с внешнего сайта), необходимо указывать ссылку в рамках домена, указанного в настройках приложения. В остальных случаях в качестве redirect_uri нужно использовать адрес http://oauth.vk.com/blank.html. 

display=page - все как тут
response_type=token - форма ответа для получения идентификатора для доступа к АРI Вконтакте

Все что написал это просто первый шаг, авторизация, но не проходит, или я что-то не понял, или где-то напартачил. Вот код:

Код

HttpClient httpclient = new DefaultHttpClient();
HttpPost post  = new HttpPost("http://oauth.vk.com/authorize?client_id=НИКНЕЙМ&scope=friends&redirect_uri=http://oauth.vk.com/blank.html&display=page&response_type=token");
HttpResponse vk_resp = httpclient.execute(post);
post.abort();            
String post_string = vk_resp.getFirstHeader("location").getValue();
System.out.println("Response: "+post_string);


Это сообщение отредактировал(а) lugaru - 6.8.2012, 02:11
PM MAIL   Вверх
Stolzen
Дата 6.8.2012, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Попробуйте вот эту библиотеку 
https://code.google.com/p/java-vk-oauth20/


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
lugaru
Дата 6.8.2012, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.11.2011

Репутация: нет
Всего: нет



Благодарю, но с этой библиотекой две проблемы, нет инфы как её использывать и главное это то что хочу сам этот участок написать для понимания работы HttpClent и ВК
PM MAIL   Вверх
Stolzen
Дата 6.8.2012, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Инфа есть на главной странице. 
Тогда попробуйте почитать исходники библиотеки - для понимания работы HttpClient и ВК.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
lugaru
Дата 6.8.2012, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.11.2011

Репутация: нет
Всего: нет



И я так понял перед тем как писать приложение надо его зарегистрировать ВКОНТАКТЕ?
PM MAIL   Вверх
lugaru
Дата 7.8.2012, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.11.2011

Репутация: нет
Всего: нет



После дня дуракаваляния с авторизацией немного продвинулся вперед но все равно есть проблема
Как я понял, что бы приложение имело доступ к АПИ Вконтакте надо приложение зарегистрировать. Сделал, АЙДИ приложения 3066711
Исходя с материала http://habrahabr.ru/post/144813/
Вот что получаю с выполнения проги
Код


First resp: https://login.vk.com/?from_host=oauth.vk.com&from_protocol=http&ip_h=39bc469179dd4d6ac5&soft=1&to=aHR0cDovL29hd
XRoLnZrLmNvbS9vYXV0aC9hdXRob3JpemU/Y2xpZW50X2lkPTMwNjY3MTEmc2NvcGU9ZnJpZW5kcyZyZWRpcmVjdF91cmk9aHR0cDovL29h
dXRoLnZrLmNvbS9ibGFuay5odG1sJmRpc3BsYXk9cGFnZSZyZXNwb25zZV90eXBlPXRva2Vu

Second resp: http://oauth.vk.com/oauth/authorize?client_id=3066711&scope=friends&redirect_uri=http://oauth.vk.com/blank.html&display=page&
response_type=token&hash=54bd24d83b07634cbe6b6050760004fd&s=1

Third resp: HTTP/1.1 200 OK [Server: nginx/1.2.1, Date: Mon, 06 Aug 2012 21:06:04 GMT, Content-Type: text/html; charset=windows-1251, 
Content-Length: 4521, Connection: keep-alive, X-Powered-By: PHP/5.3.3-7+squeeze7, Pragma: no-cache, Cache-control: no-store,
 P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT", Set-Cookie: 
remixsid=dcb0325b8e17bbf0bda1cc8a8e6587de917003b207a8639f78361b4df976; expires=Sun, 04-Aug-2013 10:07:14 GMT; path=/; 
domain=.vk.com, Set-Cookie: remixreg_sid=deleted; expires=Sun, 07-Aug-2011 21:06:03 GMT; path=/; domain=.vk.com, Vary: Accept-Encoding]


Проблема в том что после третьего запроса параметра location нет, но в процесе просмотра пакета в снифере там есть html текс, с АЙДИ моей страницы, значит, я так полагаю, авторизация прошла.
Не могу понять что делать дальше что бы получить access_token для работы с АЙПИ


Код

            // Http initializing            
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost post = new HttpPost("http://oauth.vk.com/authorize?
client_id=3066711&scope=friends&redirect_uri=http://oauth.vk.com/blank.html&display=page&response_type=token");
            HttpResponse resp = httpclient.execute(post);
            post.abort();
            HttpEntity entity = resp.getEntity();
            String resp_ans = resp.getFirstHeader("location").getValue();
            System.out.println("First resp: "+resp_ans);
            // Get ip_h and to parameters 
            String ip_h= resp_ans.split("&")[2].split("=")[1];
            String to_h=resp_ans.split("&")[4].split("=")[1];
            //Second request
            post = new HttpPost("https://login.vk.com/?act=login&soft=1"+
                    "&q=1"+
                    "&ip_h"+ip_h+
                    "&from_host=oauth.vk.com"+
                    "&to="+to_h+
                    "&expire=0"+
                    "&email="+login+
                    "&pass="+pass);                
            resp = httpclient.execute(post);
            post.abort();
            resp_ans = resp.getFirstHeader("location").getValue();
            System.out.println("Second resp: "+resp_ans);

            // Third request
            post = new HttpPost(resp_ans);
            resp = httpclient.execute(post);
            post.abort();            
            resp_ans = resp.toString();
            System.out.println("Third resp: "+resp_ans);


Это сообщение отредактировал(а) lugaru - 7.8.2012, 00:17
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.