Решили поделиться своими наработками по реализации ВКонтакте API для Android. Данное SDK позволяет быстро авторизоваться и вызывать методы API, например отправить запись на стену, получить список друзей пользователя и многое другое. Изначально библиотека разрабатывалась как ядро проекта Kate Mobile. Совсем недавно пришла идея оформить часть кода в ощедоступную библиотеку. На скорую руку вынести её в отдельный проект и теперь она доступна всем желающим. Сейчас реализованы основные методы API, пополняем по мере необходимости. Будем улучшать на основании полученного фидбэка. Если он будет.
SDK опубликовано на гитхабе https://github.com/thest1/Android-VKontakte-SDK. Распространяется по лицензии MIT. Вы можете её использовать в любых проектах, в том числе коммерческих. Можете её модифицировать. Ссылку на первоисточник желательно размещать по возможности.
Быстро понять принципы работы библиотеки вам поможет демо-проект AndroidVkSdkSample. В нём реализована авторизация и, в качестве примера, отправка записи на свою стену.
Чтобы подключить библиотеку к своему проекту, нужно выполнить следующие шаги:
- Импортировать проект AndroidVkSdk в Eclipse. AndroidVkSdk реализован как Android Library Project.
- Добавить в своём проекте ссылку на AndroidVkSdk.
- Убедиться что у вашего приложения есть разрешение на доступ в Интернет
<uses-permission android:name="android.permission.INTERNET"/>
- Создать url авторизации и открыть его в WebView
String url=Auth.getUrl(API_ID, Auth.getSettings()); webview.loadUrl(url);
Здесь в качестве API_ID должен быть указан ID вашего приложения, созданного на vk.com/developers.php
- Дождаться когда webview будет перенаправлен на Auth.redirect_url. Распарсить redirect_url чтобы получить из него access_token. Для примера смотрите как это сделано в LoginActivity.java в проекте AndroidVkSdkSample.
String[] auth=Auth.parseRedirectUrl(url);
- Создать объект Api для выполнения запросов к серверу ВКонтакте:
API api=new Api(access_token, API_ID);
- Теперь можно выполнять запросы к серверу, например так:
api.createWallPost(user_id, text, null, null, false, false, false, null, null);
Автор: DmitriyM2011