Spring social vk (Вконтакте): Как получить фотоальбомы пользователей

я пытаюсь интегрировать некоторые весенние социальные проекты в свой проект, и теперь я ищу способ, как получить фотоальбомы пользователей из vk/vkontakte. Получить данные фото профиля не проблема, так как я могу получить их с помощью класса VKontakteProfile. Как API https://vk.com/pages?oid=-17680044&p=getProfiles предлагает такую ​​функцию, я искал метод API, но не смог найти...


person StephanM    schedule 10.08.2015    source источник


Ответы (2)


Чтобы получить пользовательские альбомы, у вас должен быть access_token, потому что обычно большинство пользователей uf скрывают свои альбомы от неавторизованных людей. Вы можете получить его, выполнив OAuth-авторизацию с помощью созданного вами приложения ИЛИ по этой ссылке:

https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username=YOUT_ACCOUNTS_LOGIN&password=YOUR_ACCOUNT_PASSWORD

Эта ссылка используется официальным приложением ВКонтакте для Android, чтобы сделать "прямую" авторизацию. Прямая аутентификация разрешена только для официальных приложений, таких как приложения для iOS, Android и Windows Phone. Итак, client_id и client_secret - это данные из андроид-приложения. Он был извлечен из декомпилированного приложения. Не бойся: она не изменится никогда.

Итак, вы сделали этот GET-запрос и получили в ответ access_token, если данные для входа верны.

Затем вы должны использовать метод photos.getAlbums следующим образом:

https://api.vk.com/method/photos.getAlbums.xml?owner_id=YOUR_PAGE_ID&access_token=YOUR_ACCESS_TOKEN

Как видите, URL содержит «.xml». Поэтому, если вы хотите, чтобы ответ имел формат JSON, просто удалите «.xml» из этого URL-адреса. Но xml удобнее анализировать, я думаю.

Затем, если вам нужно получить фотографии альбомов позже, вы должны использовать метод photos.get. Для его использования вам нужны идентификационные номера альбомов. В ответ на ваш последний запрос этот параметр называется "помощь".

Вы можете использовать регулярные выражения для получения этих параметров из ответа, выражение должно быть <aid>(.*?)<\/aid>

Итак, затем вы делаете запрос на получение данных из определенного альбома:

https://api.vk.com/method/photos.get.xml?owner_id=YOUR_ACCOUNT_ID&album_id=PARSED_ALBUM_ID&access_token=YOUT_ACCESS_TOKEN

Та же ситуация с форматом ответа "xml". Таким образом, вы увидите список объектов «фото», который содержит все данные об этом изображении, такие как его идентификатор в альбоме, его ссылка на изображения (с разными размерами), его ширина, высота, описание, дата загрузки и другие.

Не стесняйтесь получать от меня любую помощь по VK API.

Список всех методов, которые есть у API, здесь: https://vk.com/dev/methods

person SwiftStudier    schedule 10.08.2015

Насколько я знаю, ВКонтакте предоставляет API для получения пользовательских альбомов.

photos.getAlbums Метод API обозначает эту функцию.

Например,
https://api.vk.com/method/photos.getAlbums/?owner_id=5369654&access_token=your_access_token

Меня устраивает. Подробнее об этом читайте здесь:
https://vk.com/dev.php?method=methods#/dev/photos.getAlbums

person Yeldar Kurmangaliyev    schedule 10.08.2015
comment
Ой. Теперь я вижу. Вам нужен именно способ работы с ним с помощью Spring. Тем не менее, возможно, этот ответ может вам помочь. Пожалуйста, сообщите мне, если это не так - я удалю это. - person Yeldar Kurmangaliyev; 10.08.2015
comment
Спасибо, Елдар. Я знаю, что vk ​​предлагает этот метод API (см. также ссылку в моем первоначальном вопросе). Так как я использую весенний социальный проект vkontake с сайта projects.spring.io/spring-social Сейчас я ищу метод API в этой библиотеке. Я действительно не хочу создавать свои собственные json-запросы для получения только информации об альбоме, если есть такая библиотека :) - person StephanM; 10.08.2015
comment
Упс, извините .... только что увидел, что я разместил ссылку на профиль. Я имел ввиду ссылку на альбом... - person StephanM; 10.08.2015