Android studio интерфейс вконтакте

ВКонтакте 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 интерфейс вконтакте

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-запроса с загрузкой файла.

    Источник

    Вконтакте представили SDK для Android

    На днях ВКонтакте в разделе для разработчиков выложили SDK для Android.

    Популярная социальная сеть ВКонтакте пополнила свой набор инструментариев для разработки приложений, в котором уже имеются Flash и Javascript SDK, а также SDK для iOS, еще одним — SDK для Android.

    Эта библиотека включает в себя инструменты для авторизации, как при наличии на девайсе пользователя официального клиента, так и при его отсутствии, а также инструменты для облегчения составления/выполнения запросов и обработки ответов.

    Не забыли ребята и о владельцах девайсов с неактуальными версиями Android на борту — тестовое приложение, поставляемое вместе с SDK, имеет требования Android 2.2+

    Также не оставлен без внимания вопрос защиты.
    Подробности под катом.

    Где взять?

    VK Android SDK доступен для скачивания на GitHub.

    Как подключить?
    SDK к проекту

    В Eclipse, которым, к слову, я пользуюсь, а также в Android Studio, с использованием сборщика Gradle, VK SDK подключается также, как и любая другая библиотека, поэтому не стану на этом останавливаться. Скажу только, что для удобства я изменил структуру папок:
    =>

    Если же вы не используете Gradle в Android Studio, то следует переименовать подключаемый модуль из «main» в «vksdk».

    В манифесте необходимо прописать activity com.vk.sdk.VKOpenAuthActivity.

    Проект к ВКонтакте

    Разработчики создали систему безопасности, благодаря которой другое приложение не сможет выдать себя за ваше.

    • Во-первых, после создания standalone-приложения, в его настройках вы должны указать название пакета.
    • Во-вторых, вы должны указать в настройках имя главной activity вашего приложения.
    • В-третьих (это самое главное), вы должны указать отпечаток ключа вашего приложения, предварительно удалив двоеточия. Можно несколько, например, debug и release. Утилита keytool выдала мне три отпечатка — MD5, SHA1 и SHA256. ВКонтакт интересует SHA1.
    Как использовать?
    Авторизация

    При запуске приложения нужно инициализировать SDK:
    VKSdk.initialize(VKSdkListener listener, String appId, VKAccessToken token);

    Авторизацию рекомендуется производить одним из следующих способов:
    VKSdk.authorize(String. scope);
    VKSdk.authorize(String[] scope, boolean revoke, boolean forceOAuth);
    По умолчанию авторизация происходит через вконтакте клиент. Если оный на девайсе пользователя не установлен или forceOAuth == true, то страница авторизации открывается в отдельной activity.

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

    Выполнение запросов

    Можно составить запрос, используя имеющуюся в SDK модель:
    VKRequest request = VKApi.users().get();
    Или непосредственно указать имя вызываемого метода:
    VKRequest request = new VKRequest(«status.get»);
    То же самое с параметрами:
    VKRequest request = VKApi.users().get(VKParameters.from(VKApiConst.USER_IDS, «1,2»));
    VKRequest request = new VKRequest(«friends.get», VKParameters.from(VKApiConst.FIELDS, «sex,bdate,city»));

    Для загрузки фотографий предусмотрены специальные типы запроса — VKUploadAlbumPhotoRequest для загрузки в альбом и VKUploadWallPhotoRequest для загрузки на стену. Оба имеют по два конструктора:

    При загрузке фото на свою стену или стену группы user_id == 0, иначе — id пользователя, на стену которого будем гадить загружать фото.
    При загрузке фото на стену/в альбом группы group_id == id целевой группы, иначе group_id == 0 (например, загрузка фото в свой альбом).
    В album_id, соответственно, идентификатор фотоальбома.

    Что касается объекта VKUploadImage, то в его конструктор необходимо передать изображение в виде объекта Bitmap и объект VKImageParameters, представляющий тип изображения (png, jpg) и значение quality (для jpg).

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

    Перед выполнением запроса можно изменить некоторые его параметры:

    Выполняется запрос методом request.executeWithListener(VKRequestListener listener);
    Ответ сервера (VKResponse) приходит в listener.
    Пример оправки запроса:

    Можно выполнить несколько запросов одним пакетом. Для этого создаем, так сказать, мультизапрос:
    VKBatchRequest batch_req = new VKBatchRequest(VKRequest. requests);
    Как видите, в одном пакете может быть любое количество запросов.
    Выполняется мультизапрос также, как и единичный, только с другим слушателем:

    Обработка ответов

    Если в ответе ожидается объект, Java-представления которого пока нет в модели SDK, имеет смысл установить parseModel = false; и самостоятельно обрабатывать полученный JSON. Иначе достаточно привести полученный объект к необходимому типу.

    Заключение

    SDK Вконтакте для Android — довольно удобный и элегантный инструмент. Однако, конечно, ещё сырой. Файл-менеджмент пока представляет собой только загрузку фото. Аудио-, видеозаписи и документы пока в пролёте. Модель пока включает только Java-представления пользователя и фотографии. Однако уже имеются средства обработки капчи и ошибки валидации.
    Библиотеке есть куда развиваться — а это значит, что можно в этом поучаствовать и вписаться в историю ВКонтакте.

    Официальную документацию по SDK для Android можно почитать здесь.

    Источник

    Простой и удобный способ добавления социальных сетей в Андроид приложение на примере Вконтакте и Одноклассники

    Во время разработки приложений на Андроид часто встает вопрос интеграции социальных сетей в приложение. Логин через социальную сеть, рассказать друзьям, просмотреть список друзей — встречаются почти в каждом приложении.

    Для этого можно воспользоваться модулями библиотеки ASNE.

    Используя модуль библиотеки вы подключите SDK или API выбранной социальной сети и интерфейс для наиболее часто используемых запросов к ней, тем самым сэкономив время и упростив добавление другой социальной сети. Благодаря использованию SDK, пользователь может залогиниться или расшарить запись через уже установленное приложение социальной сети. А добавить социальную сеть как модуль, если ее нет в разработанных, не составит труда — это легко сделать по аналогии с любым другим модулем.

    В данной публикации я покажу, как можно легко добавить поддержку VK и Odnoklassniki в приложении под Android, используя соответствующие модули ASNE. В статье рассмотрен упрощенный пример, включающий добавления логина, записи с ссылкой на стену пользователя и вывода списка друзей.

    Регистрация приложения в социальной сети

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

    • VK
    • Odnoklassniki

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

    • VK App ID
    • OK App ID
    • OK Public Key
    • OK Secret Key

    Интеграция Вконтакте и Одноклассники в приложение

    После создания нового проекта сохраним ключи в values/strings.xml:

    Затем добавим uses-permission для работы с интернетом и activity, необходимую «Одноклассниками» для взаимодействия с приложением в манифест.

    Теперь добавим зависимости для модулей ASNE, например, в Android Studio для этого необходимо:

    Открыть Project Structure => выбрать модуль приложения и открыть Dependencies => Add new library dependency

    Затем по запросу asne вы увидите все модули доступные в библиотеке и добавьте в зависимость asne-vk, asne-odnoklassniki:

    Либо вручную добавьте зависимости в build.gradle.

    Немного украсим наше приложение:
    В главном фрагменте расположим 2 кнопки, отвечающие за логин в социальные сети.

    Для обработки ответа после запроса логина переопределим в MainActivity.java метод onActivityResult.

    При обработке запроса логина социальная сеть отправляет onActivityResult проверяем его и отправляем в SocialNetworkManager, который передаст его в соответствующую SocialNetwork.

    Теперь интегрируем социальную сеть в MainFragment.java — это просто:

      Возьмем ключи социальных сетей из values.xml

    Создадим SocialNetworks с соответствующими разрешениями:

    Проверим существует ли SocialNetworkManager

      Если не существует зададим его и добавим в него SocialNetworks

    Если SocialNetworkManager существует(задали в activity или другом фрагменте) — выберем все инициализированные социальные сети и установим им OnLoginCompleteListener

    Теперь необходимо обработать ответ после инициации SocialNetworks

    Весь исходный код onCreateView и onSocialNetworkManagerInitialized из MainFragment c инициацией социальных сетей.

    Запросы к Социальным сетям

    Для начала запросим логин в социальной сети, для этого потребуется лишь id

    Код OnClickListener loginClick с проверкой состояния подключения к социальной сети, а если пользователь уже вошел через социальную сеть — откроем ProfileFragment.java

    После обработки логина приложением социальной сети получим onLoginSuccess(int networkId) или onError(int networkId, String requestID, String errorMessage, Object data) — выведем соответствующее сообщение.

    Откроем ProfileFragment.java с помощью метода:

    В ProfileFragment.java получим идентификатор социальной сети из MainFragment.java

    Теперь с помощью networkId мы выберем социальную сеть и запросим данные профиля текущего пользователя следующим образом:

    не забудьте добавить OnRequestSocialPersonCompleteListener
    После обработки запроса мы можем использовать полученный объект SocialPerson для заполнения профиля пользователя в приложении, либо вывести ошибку при неудаче

    Для выхода из социальной сети необходимо использовать метод logout()

    И, честно говоря, это все — добавили ВК и Одноклассники в приложение. Как оказалось это достаточно просто и быстро. Аналогично можно добавить и другие социальные сети Facebook, Twitter, Linkedin, Instagram или Google Plus лишь добавив соответствующую зависимость и добавив их в SocialNetworkManager

    Конечно же вы можете использовать выше описанные методы для работы с ними

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

    Для отправки ссылки на стену пользователя нам необходимо ее передать в Bundle

    И конечно же обработать ответы

    Итак в OnClickListener shareClick покажем пользователю простой диалог в котором спросим, хочет ли он поделиться ссылкой, и если да, отправим ее

    И на стене пользователя успешно появилась ссылка с предпросмотром и описанием

    Теперь выведем список друзей пользователя:
    Получим SocialNetwork из идентификатора социальной сети и запросим список друзей

    Используя модули библиотеки ASNE можно легко и быстро добавить любую популярную социальную сеть в приложение. Конечно же в библиотеке содержится больше методов которые возможно пригодятся в вашем приложении. А так же можно использовать любые методы SDK или API используя токен или объект SDK

    Если данное приложение вам показалось простым, вы можете посмотреть реализацию всех методов библиотеки в демо для библиотеки

    Так же вы можете изучить аналогичную статью по подключению Facebook, Twitter and LinkedIn на codeproject.com.

    В данный момент библиотека стабильна и находится в состоянии добавления социальных сетей. Буду рад вашим советам или помощи в разработке.

    В планах развития библиотеки:

    • Описание добавления своего модуля — в вики репозитория(на самом деле все очень просто);
    • Добавление китайских социальных сетей;
    • Написания javdocа и тестов.

    Источник

    Читайте также:  Карты для иго для андроид
    Оцените статью