SDK Вконтакте Android. Нужно получить информацию о пользователях с помощью метода ВК API users.get
У меня в приложении пользователь авторизуется в ВК с помощью метода VK.login(this, list); и получает объект VKAccessToken. Как используя SDK методы я теперь могу послать запрос users.get и в каком виде приходит ответ?
Ответы (2 шт):
В общем пришлось мне книгу про Kotlin прочитать что бы разобраться. Когда мы получили токен и хотим отправить запрос то нужно создать объект с запросом. В Java это выглядит так
VKRequest vkRequest = new VKRequest("likes.add").addParam("type","post").addParam("owner_id",227420921).addParam("item_id", 21374).addParam("access_key", vkAccessToken.getAccessToken()).addParam("v", "5.130");
Создаём объект VKRequest и при создании в конструктор закидываем сам метод, а дальше с помощью методов addParam закидываем в объект параметры для запроса. В примере мы хотим поставить лайк на стене пользователя. vkAccessToken.getAccessToken() - тут мы указываем токен полученный ранее.
После того как мы получили объект vkRequest нужно его отправить на сервак, это делается с помощью метода VK.execute()
VK.execute(vkRequest, new VKApiCallback(){
@Override
public void success(Object o) {
//какие то действия с полученной информацией
}
@Override
public void fail(@NotNull VKApiExecutionException e) {
//какие то действия с полученной информацией
}
});
В метод VK.execute() мы запихиваем созданный нами объект и анонимный класс в котором переопределяем методы. Эти методы будут вызываться после того как сервер обработает запрос. success вызывается когда запрос обработан и получен ответ, а fail в случае если произошла ошибка при отправке запроса.
Поскольку на данный момент до сих пор нигде нет примеров по новому SDK, пришлось насобирать по кусочкам и обрывочным сведениям в интернете java-код использования в качестве SSO (логин и получение userId) на SDK com.vk:android-sdk-core:3.3.0
Полостью код положил на страницу официального SDK сюда
Вкратце:
VKRequest r = new VKRequest("users.get",VK.getApiVersion()).addParam("fields","city, domain, nickname,photo_100,sex");
VK.execute(r, new VKApiCallback<JSONObject>() {
@Override
public void success(JSONObject response) {
... //тут используем response как обычно