Авторизация вконтакте android studio

Авторизация вконтакте android studio

2) Запрос с параметрами.

VKRequest request = VKApi.users().get(VKParameters.from(VKApiConst.USER_IDS, "1,2"));

3) Вариант с http загрузкой (если при авторизации в scope был передан VK_PER_NOHTTPS).

VKRequest request = VKApi.users().get(VKParameters.from(VKApiConst.USER_IDS, "1,2"));
request.secure = NO;

4) Запрос с количеством повторений.

VKRequest request = VKApi.wall().post(VKParameters.from(VKApiConst.OWNER_ID, "-60479154", VKApiConst.MESSAGE, "Привет, друзья!"));
request.attempts = 10;
//or infinite
//postReq.attempts = 0;

Будет выполнено 10 запросов, пока не произойдет успех, или не будет возвращен API error

5) Загрузка произвольного метода API (нужно иметь в виду полученный scope).

VKRequest request = new VKRequest("friends.get", VKParameters.from(VKApiConst.FIELDS, "sex,bdate,city"));


final Bitmap photo = getPhoto();
VKRequest request = VKApi.uploadWallPhotoRequest(new VKUploadImage(photo, VKImageParameters.jpgImage(0.9f)), 0, 60479154);


request.executeWithListener(new VKRequestListener() <
@Override
public void onComplete(VKResponse response) <
//Do complete stuff
>
@Override
public void onError(VKError error) <
//Do error stuff
>
@Override
public void attemptFailed(VKRequest request, int attemptNumber, int totalAttempts) <
//I don't really believe in progress
>
>);

SDK предусматривает возможность выполнения нескольких методов в один запрос.
1) Подготавливаются необходимые запросы:

VKRequest request1 = VKApi.uploadWallPhotoRequest(new VKUploadImage(photo1, VKImageParameters.jpgImage(0.9f)), 0, 60479154);
VKRequest request2 = VKApi.uploadWallPhotoRequest(new VKUploadImage(photo2, VKImageParameters.jpgImage(0.5f)), 0, 60479154);
VKRequest request3 = VKApi.uploadWallPhotoRequest(new VKUploadImage(photo3, VKImageParameters.jpgImage(0.1f)), 0, 60479154);
VKRequest request4 = VKApi.uploadWallPhotoRequest(new VKUploadImage(photo4, VKImageParameters.pngImage()), 0, 60479154);

VKBatchRequest batch = new VKBatchRequest(request1, request2, request3, request4);

batch.executeWithListener(new VKBatchRequestListener() <
@Override
public void onComplete(VKResponse[] responses) <
super.onComplete(responses);
String[] photos = new String[responses.length];
for (int i = 0; i < responses.length; i++) <
VKPhoto photoModel = ((VKPhotoArray) responses[i].parsedModel).get(0);
photos[i] = String.format("photo%s_%s", photoModel.owner_id, photoModel.id);
>
makePost(VKStringJoiner.join(photos, ","));
>

@Override
public void onError(VKError error) <
showError(error);
>
>);

Источник

Авторизация вконтакте android studio

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 studio

    VK SDK for Android

    Library for working with VK API, authorization through VK app, using VK functions. Minimal version of Android is 5.0

    Prepare for Using VK SDK

    To use VK SDK primarily you need to create a new VK application here by choosing the Standalone application type. Choose a title and confirm the action via SMS and you will be redirected to the application settings page. You will require your Application ID (referenced as API_ID in the documentation). Fill in the «Batch name for Android», «Main Activity for Android» and «Certificate fingerprint for Android».

    Certificate Fingerprint Receiving

    To receive your certificate’s fingerprint you can use one of the following methods.

    Fingerprint Receiving via Keytool

    1. You need to find the keystore location for your app. The »debug» store is usually located in these directories:
    • /.android/ for OS X and Linux,

    • C:\Documents and Settings .android\ for Windows XP,
    • C:\Users .android\ for Windows Vista, Windows 7 and Windows 8.

    The keystore for the release version is usually created by a programmer, so you should create it or recall its location.

    1. After the keystore’s location has been found, use keytool utility (it is supplied with the Java SDK). You can get keys list with the following command:

    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

    Fingerprint Receiving via SDK

    If you’ve already added SDK to your project, you can use the following function in each Activity of your app.

    As a rule, fingerprints contains a single line. It’s a fingerprint of your certificate (depends on the certificate used for your app’s signing)

    Fingerprint Receiving via Android Studio

    Click in right menu on Gradle tab (or double shift and type Gradle). Open your project root folder, then open Tasks and after android. Run signingReport task. Find your SHA1 fingerprint in Run tab output.

    You can add more than one fingerprint in your app settings, e.g., debug and release fingerprints.

    Connecting VK SDK to Your Android Application

    Connecting With Maven

    You can add next maven dependency in your project:

    The available library modules are listed below.

    android-sdk-core : Core functionality (required).

    android-sdk-api : Api generated models and methods.

    androidsdk : deprecated copy version of the android-sdk-core(will be removed in future releases since 01.09.2021).

    androidsdkapi : deprecated copy version of the android-sdk-api(will be removed in future releases since 01.09.2021).

    Источник

    ВКонтакте Android SDK

    Решили поделиться своими наработками по реализации ВКонтакте API для Android. Данное SDK позволяет быстро авторизоваться и вызывать методы API, например отправить запись на стену, получить список друзей пользователя и многое другое. Изначально библиотека разрабатывалась как ядро проекта Kate Mobile. Совсем недавно пришла идея оформить часть кода в ощедоступную библиотеку. На скорую руку вынести её в отдельный проект и теперь она доступна всем желающим. Сейчас реализованы основные методы API, пополняем по мере необходимости. Будем улучшать на основании полученного фидбэка. Если он будет.

    SDK опубликовано на гитхабе https://github.com/thest1/Android-VKontakte-SDK. Распространяется по лицензии MIT. Вы можете её использовать в любых проектах, в том числе коммерческих. Можете её модифицировать. Ссылку на первоисточник желательно размещать по возможности.

    Быстро понять принципы работы библиотеки вам поможет демо-проект AndroidVkSdkSample. В нём реализована авторизация и, в качестве примера, отправка записи на свою стену.

    Чтобы подключить библиотеку к своему проекту, нужно выполнить следующие шаги:

    1. Импортировать проект AndroidVkSdk в Eclipse. AndroidVkSdk реализован как Android Library Project.
    2. Добавить в своём проекте ссылку на AndroidVkSdk.
    3. Убедиться что у вашего приложения есть разрешение на доступ в Интернет

    Создать url авторизации и открыть его в WebView

    Здесь в качестве API_ID должен быть указан ID вашего приложения, созданного на vk.com/developers.php
    Дождаться когда webview будет перенаправлен на Auth.redirect_url. Распарсить redirect_url чтобы получить из него access_token. Для примера смотрите как это сделано в LoginActivity.java в проекте AndroidVkSdkSample.

    Создать объект Api для выполнения запросов к серверу ВКонтакте:

    Теперь можно выполнять запросы к серверу, например так:

    Источник

    Авторизация вконтакте android studio

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

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

    Первый экран приложения ( 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)
    • Не забыть нажать «Сохранить изменения»

    Интеграция 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 .

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

    Источник

    Читайте также:  Android studio как поменять версию api
    Оцените статью