Задать вопрос

Авторизация Вконтакте на java?

Всем привет,


Разрабатываю приложение на java и хотелось бы прикрутить авторизация через ВКонтакте.


Среди читающих есть ли кто, кто уже реализовал что-то подобное и может поделиться кодом?


Спасибо
  • Вопрос задан
  • 18771 просмотр
Подписаться 7 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
wrmax
@wrmax
Посмотрите эту статью ВКонтакте Android SDK. Там есть ссылки на исходники с авторизацией.
Ответ написан
@bracadabra
Если нужна авторизация без WebView, то она выглядит примерно следующим образом:
  1. //Получаем необходимы cookie
  2. HttpGet get = new HttpGet(http://vk.com/login.php?email=%s&pass=%s);
  3. HttpResponse response = mHttpClient.execute(get);
  4. if (response.getStatusLine().getStatusCode() != 200) {
  5. throw new UpdateException("Failed to obtain token");
  6. }
  7.  
  8. //Делаем запрос на авторизацию
  9. get = new HttpGet("api.vk.com/oauth/authorize?client_id=_&redirect_uri=http%3A%2F%2Fapi.vk.com%2Fblank.html&response_type=code&scope=audio,offline");
  10. response = mHttpClient.execute(get);
  11. if (response.getStatusLine().getStatusCode() != 200) {
  12. throw new UpdateException("Failed to obtain token");
  13. }
  14.  
  15. //Получаем последнюю ссылку на которую нас перенаправили
  16. final String lastLink = redirectHandler.getLastLocationURI().toString();
  17. if (lastLink.contains("oauth.vk.com/oauth/authorize")) {
  18. throw new VkApiException("Failed to login!");
  19. } else if (lastLink.contains(oauth.vk.com/authorize)) {
  20. //Попадаем сюда, если у приложения нет подтвержденных разрешений
  21. final String approveLink = getApproveLink(EntityUtils
  22. .toString(response.getEntity()));
  23. get = new HttpGet(approveLink);
  24. response = mHttpClient.execute(get);
  25. if (response.getStatusLine().getStatusCode() != 200) {
  26. throw new UpdateException("Failed to obtain token");
  27. }
  28. }
  29.  
  30. //Если всё хорошо, то получаем из последнего url код
  31. final String code = extractCode(redirectHandler.getLastLocationURI().toString());
  32.  
  33. //Получаем токен с помощью библиотеки scribe
  34. final Verifier verifier = new Verifier(code);
  35. final Token token =  mAuthSevice.getAccessToken(EMPTY_TOKEN, verifier);


PS раньше это работало, но вроде у них что то поменялось.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы