EC-CUBE

EC-CUBE + Instagram

instagram

Instagram APIでFeedを取得してサイトに表示させる方法

なんとなくやろうやろうと思いながら出来てなかったEC-CUBEにインスタグラムのサムネイル写真の埋め込み

時間がなかったのでSnap Widgetを使って作ってましたが写真を押すと当たり前ですがSnap Widgetに移動します。

やりたいのはこれじゃないんですよねー・・・

出来れば自分のインスタグラムに移動してほしい!!ということで

EC-CUBEとInstagramの連携方法

Instagramの準備・設定

Instagramのアカウントを作成

まずは肝心なInstagramのアカウントを作らなければいけませんねw

アプリをダウンロードしてアカウントを発行してください。

https://www.instagram.com/

Instagramのアプリケーションの登録

パソコンでInstagramにログインしたあと以下のURLにアクセスしてください。

https://www.instagram.com/developer/

画像で赤枠で囲っているRegister Your Applicationをクリックしてください。

開発者登録画面になりますので

サイト・電話番号・APIの使用用途の説明を入力します。

ウェブサイト: サイトのURL

Phone number: 電話番号

What do you want to build with the API?: APIの使用用途説明

利用規約にチェックを入れ、『Sign up』をクリックします。

「Register a New Client」をクリック

必要情報を入力していきます。

Application Name: 作成するアプリケーション名

Description: 作成するアプリケーションの説明文

Company Name: 会社名(省略が可能)

Website URL: サイトのURL

Valid redirect URIs: 確認リダイレクト先のURL(サイトのURLで大丈夫)

Privacy Policy URL: 個人情報保護方針ページのURL(省略が可能)

Contact email: 連絡用メールアドレス(省略が可能)

入力できたら「Details」「Security」のタブのうち、「Security」を選択。

「Disable implicit OAuth:」のチェックを外して「Resister」をクリック。

問題なく登録できれば、『Successfully registered …』と表示されます。

クライアントIDとステータスが出力がされて登録は完了です。

アクセストークンの取得

Manage Clientsに表示されている「クライアントID」と設定した「Valid redirect URIs(認証リダイレクトURL)」を使ってアクセストークンを取得します。

以下のコードを書き換えてURLバーに入力してアクセスしてください。

https://instagram.com/oauth/authorize/?client_id=「取得したCLIENT ID」&redirect_uri=「設定したValid redirect URIs」&response_type=token

すると、下記のような画面に遷移するので

instadeveloper

「Authorize」をクリックしてください。

クリックすると認証リダイレクトURLのページが表示され、URLバーにアクセストークンが付与されるのでどこかに保存しておいてください。

http://[Valid redirect URIs]/#access_token=XXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

アクセストークンはxxxxxxxxxの部分です。

ホームページへの埋め込み

htmlの設定

<div id="instafeed"></div>//Instagramを出力させる場所を#idで指定。

cssの設定

#instafeed {
 width: 100vw;
 display: flex;
 flex-wrap: wrap;
 justify-content: space-between;
}
#instafeed .flexitem {
 width: 30vw;
 height: auto;
}

javascriptの設定

var feed = new Instafeed({
    get: 'user',//ユーザの情報を取得
    userId: XXXXXXXX,//ユーザIDを入れる
    accessToken: 'XXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',//アクセストークンを入れる
    sortBy: 'most-recent',//並び順
    limit: 9,//表示数
    links: true,//リンク有無
    resolution: 'low_resolution',//画像サイズ
    template: '<div class="flexItem"><a href="{{link}}" target="_blank"><img src="{{image}}" /></a></div>'//書き出しテンプレート
    });
    feed.run();

CSSjavascriptをそれぞれの場所にペーストしhtmlの部分を表示したい場所にペーストしてください。

javascriptのshortBy・limit(最大20件まで)・links・resolutionを変更していただければいろいろ対応できると思います。

あとはtemplateのところを表示したいように変更しCSSを追加すれば季節の花 花心のページのように出来ます!

ビジュアル

下記を表記することでtemplateで使えます。

これらを組み合わせてオリジナルのページに仕上げましょう♪

画像URL:{{image}}

リンク:{{link}}

キャプションテキスト{{caption}}

いいね数:{{likes}}

コメント数:{{comments}}