Нет авторизации вконтакте андроид

Нет авторизации вконтакте андроид

SDK упрощает использование API ВКонтакте в Android-приложениях. Пользователи смогут пройти авторизацию без ввода логина и пароля. После этого вы сможете сразу начать использовать методы API.

Поддерживаются версии Android 5.0 и выше.

Для получения отпечатка Вашего сертификата можно воспользоваться одним из следующих способов.

/.android/ для OS X и Linux,

  • C:\Documents and Settings\ \.android\ для Windows XP,
  • C:\Users\ \.android\ для Windows Vista, Windows 7 и Windows 8.
  • Хранилище для release версии обычно создаётся разработчиком, поэтому вы должны сами создать или вспомнить его расположение.
    2) После того, как Вы определили местоположение Вашего хранилища, используйте утилиту keytool (поставляемую совместно с Java SDK). Получите список ключей следующей командой:

    keytool -exportcert -alias androiddebugkey -keystore path-to-debug-or-production-keystore -list -v

    Certificate fingerprint: SHA1: DA:39:A3:EE:5E:6B:4B:0D:32:55:BF:EF:95:60:18:90:AF:D8:07:09

    Удалив все двоеточия, Вы получите отпечаток своего ключа.

    String[] fingerprints = VKUtils.getCertificateFingerprint(this, this.getPackageName());

    Как правило, fingerprints содержит одну строку, которая будет отпечатком Вашего сертификата (в зависимости от того, каким сертификатом было подписано приложение).

    В настройках приложения можно добавить несколько отпечатков, например, debug и release.

    Вы можете добавить следующие зависимости в ваш файл project/build.gradle:

    • android-sdk-core: базовая функциональность (обязательно).
    • android-sdk-api: сгенерированные модели и методы.
    • androidsdk: устаревшая копия android-sdk-core (будет удалена).
    • androidsdkapi: устаревшая копия android-sdk-api (будет удалена).

    К примеру, Ваш скрипт app/build.gradle будет содержать следующие зависимости:

    dependencies <
    implementation ‘com.vk:android-sdk-core:3.x.x
    implementation ‘com.vk:android-sdk-api:3.x.x
    >

    Старые версии SDK вы можете найти здесь

    Если у пользователя установлено приложение ВКонтакте, то авторизация пройдет через него без ввода логина и пароля.

    Используйте метод VK.login

    VK.login(activity, arrayListOf(VKScope.WALL, VKScope.PHOTOS))

    Для доступа к API можно использовать как встроенные в SDK методы, так и получив access_token использовать свою библиотеку.

    Выполняйте запросы с VK.execute

    VKUsersCommand поддерживает деление на части для работы с лимитами API. В этом основное отличие VKUsersRequest от VKUsersCommand.

    Также вы можете проверить VKWallPostCommand. Это пример сложного API-запроса с загрузкой файла.

    Источник

    Android и VKontakte SDK, часть 3 (авторизация и получение прав)

    Во второй части я описал, как получить авторизацию от vk не используя сторонних библиотек и sdk. Недостаток данного способа в том, что каждому новому пользователю приходится вводить логин и пароль социальной сети. Время идет и вот vkontakte создает свою sdk для android! С помощью нее можно легко получить токен авторизации пользователя не вводя ни каких данных и даже не видя самого окна запроса прав.

    Для начала нужно подключить Android VK SDK к вашему проекту и по пунктам выполнить все действия из официальной документации SDK по настройке и подключению, а именно: «Подготовка к использованию VK SDK», «Как получить отпечаток сертификата», «Подключение VK SDK в Android-приложении».

    Далее создаем activity с авторизацией:

    Вместо переменной vk_app_id нужно вписать свой ID приложения ВКонтакте. Данный экран выполняет все необходимые действия по получению токена и необходимой информации о пользователе. Использовать данных экран достаточно просто, допустим мы имеем некую кнопку, при нажатии на которую будет происходить авторизация:

    Читайте также:  View binding android library

    VKONTAKTE_CODE — любое число, по которому будет происходить проверка в функции onActivityResult в переменной requestCode, что ответ пришел именно от нужного нам экрана, тем самым фильтровать логику ответов различных экранов (допустим, когда у нас несколько кнопок авторизации разных соц. сетей).

    Данный код нужно расместить в любом месте вашего основного экрана, в мое случае это было в методе onCreate класса LoginActivity. Все полученные данные из экрана VKontakteActivity попадут в функцию onActivityResult основного экрана вашего приложения, т.е. откуда VKontakteActivity было запущено:

    Данный способ существенно упрощает жизнь всем вашим пользователям, т.к. не заставляет вводить лишние данные при авторизации. Если вдруг у пользователя нет приложения ВКонтакте на телефоне, то vk sdk откроет страницу авторизации в обычном webview и сделает все, что было описано во второй части.

    Источник

    Авторизация в системе с помощью ВК (Android)

    Подскажите, пожалуйста, как авторизоваться в системе с помощью социальной сети. Я не могу найти какой-то подробной информации о том, как это правильно сделать. Имеется сервер Java + Spring (Tomcat) и мобильное приложение Android. Вопрос заключается в том, как правильно построить механизм авторизации? Я могу с помощью SDK от ВК авторизовать пользователя на мобильном устройстве, да, но что это мне даёт? Как авторизовать его в системе? Авторизация в ВК даст мне какой-то токен? Который я отправлю на свой сервер, а сервер должен проверить валидность этого токена с помощью того же API от ВК? Где об этом можно почитать? Скажите, как вы решали подобные задачи.

    1 ответ 1

    Здесь есть несколько возможных решений. Я бы сделал как-то так:

    1. На мобиле юзер авторизуется в ВК, получая access_token .
    2. Отсылает токен на сервер.
    3. Сервер по токену получает профиль юзера с API ВК.
    4. Проверяет есть ли такой юзер в БД по его id в ВК.
    5. Если нет — создаёт юзера в своей БД, прописывая его id в ВК в поле таблицы юзеров.
    6. Если юзер такой уже есть или его только что создали — генерирует для него свой токен по логину (например id в ВК) и паролю (пусть это будет случайная строка, генерирующаяся при создании юзера)
    7. Отсылает на мобилу сгенерированный свой токен.
    8. Мобила пишет его в SharedPreferences и использует для запросов к серверу.

    В итоге для юзера это будет выглядеть как логин через ВК, а у вас будет на сервере вся его доступная инфа из ВК, возможность логинить юзера по логину и паролю и все запросы к вашему серверу будут красиво требовать токена.

    Источник

    Нет авторизации вконтакте андроид

    Интеграция с ВКонтакте

    В рамках этого практического задания предлагается сделать небольшое приложение, использующее SDK социальной сети ВКонтакте для выполнения авторизации и нескольких несложных запросов. Работа с SDK описана на странице официально документациий для разработчиков ВКонтакте: https://vk.com/dev/android_sdk — и в процессе выполнения этого задания надо будет ознакомиться с ней и выполнить описанные в ней инструкции. В результате получится приложение, зарегистрированное для работы с ВКонтакте, которое можно будет использовать в качестве основы для реализации функций интеграции с социальной сетью, если такие функции понадобятся, к примеру, в курсовом проекте.

    Читайте также:  Delphi com port android

    Первый экран приложения ( MainActivity ) содержит только кнопку «Войти через ВКонтакте», по нажатию на которую открывается второй экран.

    Второй экран приложения ( VkDemoActivity ) при старте проверят, был ли пользователь приложения ранее уже авторизован во ВКонтакте, и если нет — выполняет авторизацию при помощи Vk SDK. В процессе этой авторизации может быть показан либо экран приложения ВКонтакте, если оно установлено на устройстве, либо страница мобильного сайта ВКонтакте, показанная в WebView внутри приложения. После успешной авторизации выполняется запрос информации о пользовтеле и показывается его фотография и имя. По нажатию на кнопку «Выйти» происходит выход на первый экран, чтобы можно было снова залогиниться тем же или другим пользователем.

    Код первого экрана уже реализован, а код второго экрана надо написать в классе VkDemoActivity в рамках этого задания.

    Задание 1 — Интеграция с VK SDK

    Для того, чтобы можно было использовать функции Vk SDK в нашем приложении, нужно выполнить инструкции, описанные здесь: https://vk.com/dev/android_sdk

    Подробнее по шагам:

    Поменять ID приложения

    ID Anroid приложения указывается в файле build.gradle в модуле приложения. По этому ID приложения идентифицируются, например, в магазине приложений Google Play, а в нашем случае он нужен для идентификации приложения в API ВКонтакте. У двух приложений ID не может быть одинаковым, поэтому вам следует поменять ID, который сейчас прописан в исходном коде задания.

    Найдите в файле app/build.gradle строчку, содержащую applicationId «ru.ifmo.droid2016.vkdemo» и замените этот ID на свой новый уникальный ID. Можно просто добавить в конце свою фамилию или другое уникальное слово.

    Получить отпечаток сертификата

    Следуя инструкции https://vk.com/dev/android_sdk?f=1.1%20%D0%9E%D1%82%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%BE%D0%BA%20%D1%81%D0%B5%D1%80%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%B0, определить отпечаток сертификата, установленного на компьютере, который вы используете для разработки. Это делается при помощи утилиты keytool , которая входит в состам JDK. В процессе выполнения задания нужно использовать debug сертификат (не release). Команда для получения сертификата выглядит приблизительно так (на Windows):

    Дефолтный пароль для keystore: android

    В выводе этой команды надо найти строчку вида

    Из которой надо взять шестнадцатеричное значение, удалив все двоеточия — это и будет отпечаток сертификата, как он используется для идентификации приложения в API ВКонтакте: CD4C0748CD1AD063DB439F57245A4990C733218E .

    Зарегистрировать приложение в API Вконтакте

    • Зайти на страницу для разработчиков ВКонтакте: https://vk.com/dev
    • Нажать «Создать приложение»

    • Ввести любое название приложения, выбрать вариант «Standalone» и нажать «Подключить приложение»

    • Пройти предложенную верификацию (через приложение или SMS — как вам нравится)
    • После успешной верификации зайти в настройки зарегистрированного приложения и получить там ID приложения

    • Там же в настройках приложения ввести
      • Android application ID (которое вы прописали в app/build.gradle )
      • Название активности ru.ifmo.droid2016.vkdemo.VkDemoActivity
      • Ваш отпечаток сертификата (полученный ранее при помощи keytool)
    • Не забыть нажать «Сохранить изменения»
    Читайте также:  Epub reader для андроид

    Интеграция Vk SDK в коде приложения

    • Указать зависимость на Vk SDK в файле app/build.gradle , добавив строчку в раздел dependencies (это пункт 2.1 инструкций, пункты 2.2 — 2.4 пропустить):
    • В файл app/src/main/AndroidManifest.xml добавить рарешение на доступ в Интернет:
    • Туда же в манифесте добавить запись об активности, которая используется Vk SDK для OAuth авторизации:
    • Создать файл ресурсов vk.xml в папке app/src/main/res/values и прописать в нем ID приложения, полученный при регистрации приложения в API Вконтакте:
    • В коде VkDemoApplication.onCreate добавить инициализацию Vk SDK:

    После выполнения этой части задания приложение готово к использованию функционала Vk SDK, однако видимого результата не видно — еще никакой полезный код не написан. Можно убедиться, что приложение собирается и запускается.

    Задание 2 — выполнение авторизации ВКонтакте

    • Авторизация должна инициироваться из VkDemoActivity.onCreate
    • В качестве параметра scope можно для начала использовать VKScopes.PHOTOS для доступа к фотографиям пользователя
    • Код, обрабатывающий результат логина, должен быть написан в VkDemoActivity.onActivityResult
    • В случае успешного логина вызвать метод VkDemoActivity.onLoggedIn(VKAccessToken token)
    • В случае неуспешного логина вызвать метод VkDemoActivity.onLoginFailed(VKError error)

    Если все работает правильно, то после логина должно быть показано короткое сообщение (тост) о результате логина.

    Для того, чтобы не вызывать процедуру авторизации при каждом запуске приложения, токен можно сохранить в настройки и использовать при следующем запуске приложения:

    • Сохранять токен следует при помощи вызова token.saveTokenToSharedPreferences(VkDemoActivity.this, Constants.KEY_TOKEN)
    • Получить ранее сохраненный токен можно при помощи вызова VKAccessToken.tokenFromSharedPreferences(this, Constants.KEY_TOKEN)

    Задание 3 — выполнение запроса с Vk SDK

    После успешного логина можно выполнять запросы к API Вконтакте при помощи Vk SDK. При этом не понадобится писать код, выполняющий HTTP запросы или код JSON-парсеров — все это берет на себя Vk SDK.

    Мы хотим запросить информацию о текущем залогиненном пользователе при помощи запроса users.get и из полученного ответа извлечь имя пользователя и URL его фотографии, и отобразить их на экране. Для отображения имени в верстке и в коде VkDemoActivity уже есть элемент:

    а для фотографии:

    Принцип выполнения запросов к API Вконтакте описан здесь: https://vk.com/dev/android_sdk?f=4.%20%D0%92%D1%8B%D0%B7%D0%BE%D0%B2%20%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2%20API. Запрос должен выполняться асинхронно в фоновом потоке, а результат должен обрабатываться в основном (main) потоке. Для асинхронного выполнения запроса можно использовать вызов VKRequest.executeWithListener — но тогда придется подумать о том, как сохранить результат выполнения запроса при смене конфигурации, чтобы при повороте экрана не выполнять запрос снова. Другой вариант — использовать механизм AsyncTaskLoader, и в нем в методе loadInBackground выполнять запрос при помощи вызова VKRequest.executeSyncWithListener .

    • В методе VkDemoActivity.onLoggedIn(VKAccessToken token) написать код, который запустит асинхронное выполнение запроса users.get без параметра user_ids (запрос информации о текущем пользователе).
    • Чтобы самим не писать парсер, нужно у объекта запроса VKRequest перед выполнением запроса вызвать метод:

    тогда готовая модель ответа типа VKUsersArray окажется в поле ответа VKResponse.parsedModel .

    • При получении результата выполнения запроса отобразить имя и фото пользователя, либо сообщение об ошибке.

    Источник

    Оцените статью