Вообще конечно, такие просмотрщики, как Fancybox, можно спокойно прикрутить и в том случае, если вы выводите фото из Instagram через JavaScript.
Для меня же метод вывода через JavaScript имеет два существенных преимущества:
В то же время есть такие случаи, когда подходит только PHP-метод подключения к API, иначе зачем бы я вообще стал его рассматривать.
В первую очередь создадим функцию, которая будет подключаться к API Инстаграм и возвращать результат. Она вполне подойдёт для любых GET-запросов к Instagram API.
function instagram_api_podkluchenie( $link ){ $c_podkl = curl_init(); // инициализируем соединение curl_setopt($c_podkl, CURLOPT_URL, $link); // к этому URL будем подключаться curl_setopt($c_podkl, CURLOPT_RETURNTRANSFER, 1); // возвращать, а не распечатываь результат curl_setopt($c_podkl, CURLOPT_TIMEOUT, 20); // таймаут $json_result = curl_exec($c_podkl); // подключаемся, получаем данные curl_close($c_podkl); // закрываем соединение return json_decode( $json_result ); // декодируем из json и возвращаем результат }
Добавьте её куда-нибудь в код своего сайта. Если это WordPress, то в файл functions.php
текущей темы. Она понадобится нам во всех примерах, как средство подключения к API через cURL
А теперь перейдем к самим примерам.
И ещё одно, в каждом примере вам понадобится Access Token, о том, где его взять, я уже писал здесь.
Кроме того, если созданное вами приложение находится в песочнице (Sandbox Mode), то будут действовать ещё некоторые ограничения, вы сможете только:
Если такие ограничения вас никак не устраивают, то статью дальше можете не читать.
Я не стал усложнять код и сделал вывод результатов в виде: ссылка (тег <a>
) +картинка (тег <img>
).
Так как согласно заголовку поста, мы хотим использовать последующие примеры в связке с лайтбоксом (например Fancybox), то я сделал для этого следующее:
href
указана не ссылка на сам пост в Инстаграм $post->link
, а ссылка на самое большое разрешение изображения, в Инстаграм это 612х612, $post->images->standard_resolution->url
$post->images->thumbnail->url
.fancybox
, но вы конечно можете использовать и другой селектор для инициализации лайтбокса.$access = 'ваш токен'; $user_id = '1362124742'; // если приложение в песочнице, то проще тут указать "self" $result = instagram_api_podkluchenie("https://api.instagram.com/v1/users/" . $user_id . "/media/recent?access_token=" . $access); foreach ($result->data as $post) { echo '<a id="insta-' . $post->id . '" href="' . $post->images->standard_resolution->url . '" class="fancybox ' . $post->filter . '"><img src="' . $post->images->thumbnail->url . '" /></a>'; } // полностью весь возвращаемый результат можно просмотреть при помощи print_r( $result ); или на сайте API Инстаграм
$access = 'укажите ваш токен'; $metka = 'wordpress'; // ваш хэштег $result = instagram_api_podkluchenie("https://api.instagram.com/v1/tags/" . $metka . "/media/recent?access_token=" . $access); //print_r( $result ); foreach ($result->data as $post) { echo '<a id="insta-' . $post->id . '" href="' . $post->images->standard_resolution->url . '" class="fancybox ' . $post->filter . '"><img src="' . $post->images->thumbnail->url . '" /></a>'; }
Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.