Instagramのタグに関連する画像を取得してみます。
※2016/06/18
APIの仕様が変更になり、インスタグラムへの申請と承認が必要になっています。詳しくは下記をご確認ください。
Permissions Review • Instagram Developer Documentation
サンプルコード
APIを使ったデータの取得をPHPで、表示部分をJavaScriptで実装してみます。
基本的な使い方は以前記事を投稿していますので、そちらをご確認ください。
Instagram APIを使ってみる | cly7796.net
PHP
<?php
$accessToken = 'アクセストークンをここに入れる';
$tagname = rawurlencode('ラブライブ'); // タグを指定
$url = 'https://api.instagram.com/v1/tags/' . $tagname . '/media/recent?access_token=' . $accessToken;
$jsonData = file_get_contents($url);
// jsonデータの整形・出力
$json = json_decode($jsonData, true);
echo json_encode($json["data"]);
JavaScript
$(function() {
$.ajax({
url: 'get.php',
dataType: 'json',
success: function(data) {
var insert = '<ul>';
for (var i = 0; i < data.length; i++) {
insert += '<li>';
// 画像とリンク先
insert += '<a href="' + data[i]['link'] + '" target="_blank">';
insert += '<img src="' + data[i]['images']['thumbnail']['url'] + '" width="150" class="instagram-image" />';
insert += '</a>';
insert += '<div class="instagram-data">';
// 日付
var d = new Date(data[i]['created_time'] * 1000);
var year = d.getFullYear();
var month = d.getMonth() + 1;
var day = d.getDate();
insert += '<div class="date">' + year + '/' + month + '/' + day + '</div>';
// 投稿者
insert += '<div class="instagram-user">';
insert += '<img src="' + data[i]['user']['profile_picture'] + '" width="50" alt="" class="user-icon" />';
insert += '<p class="user">投稿者:<br />' + data[i]['user']['username'] + '</p>';
insert += '</div>';
// caption
if(data[i]['caption'] != null) {
insert += '<p class="caption">' + data[i]['caption']['text'] + '</p>';
}
insert += '</div>'; // instagram-data END
// いいね
insert += '<div class="instagram-like">';
insert += '<div class="like-count">いいね数: ' + data[i]['likes']['count'] + '</div>';
if(data[i]['likes']['data'] != null) {
for (var j = 0; j < data[i]['likes']['data'].length; j++) {
insert += '<div class="like-user">';
insert += '<img src="' + data[i]['likes']['data'][j]['profile_picture'] + '" width="50" alt="" class="like-user-icon" />';
insert += '<div class="like-user-name">' + data[i]['likes']['data'][j]['username'] + '</div>';
insert += '</div>';
};
}
insert += '</div>';
// コメント
insert += '<div class="instagram-comments">';
insert += '<div class="comments-count">コメント数: ' + data[i]['comments']['count'] + '</div>';
if(data[i]['comments']['data'] != null) {
for (var j = 0; j < data[i]['comments']['data'].length; j++) {
insert += '<div class="comments-user">';
insert += '<img src="' + data[i]['comments']['data'][j]['from']['profile_picture'] + '" width="50" alt="" class="comments-user-icon" />';
insert += '<div class="comments-user-name">' + data[i]['comments']['data'][j]['from']['username'] + '</div>';
insert += '<p class="comments-user-text">' + data[i]['comments']['data'][j]['text'] + '</p>';
insert += '</div>';
};
}
insert += '</div>';
insert += '</li>';
};
insert += '</ul>';
$('#sample').append(insert);
}
});
});
指定したタグが付いた最新の投稿を取得しています。
取得できる情報はこちらのページのRESPONSEをご確認ください。
タグに関連した画像を取得するデモページ
【参考サイト】
コメントが承認されるまで時間がかかります。