...

суббота, 29 июня 2013 г.

Делаем себе фотогалерею с помощью API Вконтакте

Недавно попросили сделать небольшую фотогалерею, но заранее предупредили, что на веб-сервере картинки и фотографии храниться не должны.

Эта фраза немного заступорила меня, так как с веб-программированием, так сказать, я связался совсем недавно, поэтому проще бы было найти готовое решение, которое я не нашёл. Но в голову пришла идея сделать всё, используя API социальной сети Вконтакте.

Начнём мы с того, что для написания скрипта нам понадобятся два метода:

1) photos.getAlbums – возвращает список альбомов пользователя.

2) photos.get – возвращает список фотографий в альбоме.


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

Какие же ответы мы получим при использовании метода getAlbums:

— aid

— thumb_id

— owner_id

— title

— description

— created

— updated

— size

— can_upload


Не буду объяснять, что есть что. Вроде и так всё относительно понятно. Ну а нам, собственно, для нашей маленькой галереи, с этого запроса понадобится, пока что, только aid и title.

AID — Album ID

Title — название нашего альбома.


А теперь перейдем к самому интересному.

Сделаем себе крутой файл, с крутым названием index.php:



<?php
$url = 'http://api.vkontakte.ru/method/photos.getAlbums?gid=20629724'; //делаем запрос, получаем данные об альбомах паблика Хабры. gid = ID групы или паблика
$content = file_get_contents($url);
$json = json_decode($content, true); //обрабатываем полученный json

foreach($json['response'] as $item) {
print '<a href=./photos.php?album=' . $item['aid'] . '>' . $item['title'] . '</a><br>'; //находим в response наш AID и Title, после чего формируем ссылку в виде GET запроса, потому что именно так в моём примере мы будем понимать, в какой именно альбом мы попали.
}
?>


На этом с index.php всё закончено. Естественно, нужно для себя оформить всё красиво, и можно даже добавить описание альбомов, и даже обложку, но не в этом примере.


Теперь рассмотрим наш второй метод, который называется photos.get:

— pid

— aid

— owner_id

— user_id

— src

— src_big

— src_small

— src_xbig

— width

— height

— text

— created


В нашем случае мы используем только src_big.

И сразу переходим к созданию второго крутого файлика, который я назвал photos.php:



<?php
$url = 'http://api.vkontakte.ru/method/photos.get?gid=20629724&aid=' . $_GET["album"]; //делаем запрос к API, забираем из GET запроса ID нашего альбома, который мы получили благодаря предыдущему скрипту.
$content = file_get_contents($url);
$json = json_decode($content, true);

foreach($json['response'] as $item) {
print '<img src=' . $item['src_big'] . '>'; //находим все наши src_big и делаем из них картинку, с помощью всеми любимого тега <img></img>
}
?>


Вот теперь, если вы всё сделали правильно — при переходе на страничку index.php вы увидите список фотоальбомов группы, а при переходе дальше — сами фотографии фотоальбомов.


При создании собственной галереи — не поленитесь использовать возможности API по-максимуму, добавляя описание, просмотры в разных размерах, даты создания.


P.S. Не рекомендую использовать этот скрипт для объемных фотоальбомов.


This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends: 'You Say What You Like, Because They Like What You Say' - http://www.medialens.org/index.php/alerts/alert-archive/alerts-2013/731-you-say-what-you-like-because-they-like-what-you-say.html


Комментариев нет:

Отправить комментарий