Instagram API + Slider Pro で インスタグラムの最新フィードをスライダー表示
HPのサイドバーにインスタグラムのカルーセルを埋め込みました。→
目次
PHP
1 2 3 4 5 6 7 8 9 10 11 |
<?php //POSTリクエストの場合のみ受付 if($_SERVER['REQUEST_METHOD'] == 'POST'){ //アクセストークン $access_token = 'アクセストークン'; //JSONデータを取得して出力 echo @file_get_contents("https://api.instagram.com/v1/users/self/media/recent/?access_token={$access_token}"); //終了 exit; } ?> |
jQuery
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
function instaFeed() { $.each($('#instaFeed'), function(i, val) { var html = ''; $.ajax({ url: '/PATH/instagram.php',//PHPファイルのURL type:'POST', dataType: 'json' }).done(function(data){ //通信成功時の処理 html += '<div class="insta-slides sp-slides">'; $.each(data.data,function(i,item){ var imgurl = item.images.low_resolution.url; //低解像度の画像のURLを取得 var link = item.link; //リンクを取得 var caption = item.caption.text; var created_time = new Date( Number(item.created_time +'000') ); var y = created_time.getFullYear(); var m = created_time.getMonth()+1; var d = created_time.getDate(); var weekDayList = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']; var weekDay = weekDayList[ created_time.getDay() ] ; // 曜日 html += '<div class="sp-slide">'; html += '<a href="' + link + '" target="_blank">'; html += '<img class="sp-image" src="' + imgurl + '">'; html += '<p class="sp-layer sp-white sp-padding" data-horizontal="2%" data-vertical="4%" data-width="96%" data-position="bottomRight" data-show-transition="left" data-show-delay="200" data-hide-transition="right" data-hide-delay="400">'; html += '<span>' + y + '.' + m + '.' + d + ' ' + weekDay + '</span>'; html += caption; html += '</p>'; html += '</a>'; html += '</div>'; }); html += '</div>'; }).fail(function(){ //通信失敗時の処理 html = "<li>画像を取得できません。</li>"; }).always(function(){ $.when( $(val).append(html) ).done(function(){ $('#instaFeed').sliderPro({ width: '100%',//横幅 arrows: true,//左右の矢印 buttons: false,//ナビゲーションボタン keyboard: false }); }); }); }); } |
※ エンターキーでページ遷移するようになってしまった
最初、ページを開いた後にエンターキーを押すとインスタグラムのページに遷移するようになってしまって困った。
コメント欄や検索欄の Enter も飛ばされる…。
原因は Slider Pro はデフォルトでキーボード操作が ON になっている為で、オプションで False を設定する必要があるのでした。
1 |
keyboard: false |
HTML
1 2 3 |
<section id="instaFeed" class="slider-pro"> <h2>Instagram</h2> </section> |
同じことで困っていたらこの記事を見て解決しました!!!
ありがとうございます!
お役に立てて良かったです!