я пытаюсь интегрировать некоторые весенние социальные проекты в свой проект, и теперь я ищу способ, как получить фотоальбомы пользователей из vk/vkontakte. Получить данные фото профиля не проблема, так как я могу получить их с помощью класса VKontakteProfile. Как API https://vk.com/pages?oid=-17680044&p=getProfiles предлагает такую функцию, я искал метод API, но не смог найти...
Spring social vk (Вконтакте): Как получить фотоальбомы пользователей
Ответы (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
Насколько я знаю, ВКонтакте предоставляет 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