愛知県名古屋市のブランディングで育てる
ECコンサルティング・ECサイト構築会社|アイヴィクス株式会社

Instagram APIの一部機能が2018年に終了したことにより、従来の方法では、Instagramの写真をサイトに表示できなくなってしまいました。
弊社でも従来の方法でInstagramを設置していたクライアント様より、度重なるご指摘をいただきましたので、備忘録として記録させていただくことにいたしました。
そもそも、Instagram APIが仕様変更→廃止になってしまうので、Instagram API(https://www.instagram.com/developer/)を使ったアクセストークン取得の方法ではなく、Instagram Graph API(https://developers.facebook.com/)を使った方法をご説明させていただきます。
サイトにInstagramの写真を表示するために必要なものは、
が必要となります。
今回は、上記の取得を目指したいと思います。
目次 [表示]
最初にFacebook開発アプリ(https://developers.facebook.com/)を使ってInstagramの写真を取得するので、Facebook開発アプリを利用するためとInstagramビジネスアカウントIDを取得するためにFacebookページを作成します。
アクセストークンには、ユーザーアクセストークンとページアクセストークンの2種類があります。
ユーザーアクセストークンは、個人アカウントのアクセストークンですので、Facebookの個人アカウントをお持ちでない人はアカウント登録が必要です。
ページアクセストークンは、個人アカウントが管理者のFacebookページが必要となります。
以下URLにアクセスします。
https://www.facebook.com/pages/creation/
画面の左のビジネスまたはブランドを選択してください。「次へ」で進みます。
PageNameとCategoryを入力します。
Categoryは、どんなビジネスに該当するのかを入力してください。
カテゴリー名の一部を入力すると、カテゴリーリストが表示されますので、選択してください。
選択肢によっては、住所等が必要なカテゴリーがあるので画面の指示に従ってください。
プロフィール写真の追加、カバー写真の追加はスキップできます。
以上でFacebookページの作成は完了です。
まずは、サイトに写真を表示したいInstagramアカウントをビジネスアカウントに変更している必要性があります。
流れとしては、Instagramの個人アカウントを取得後、ビジネスアカウントに変更という手順になります。
手順に追って進めていくと、最後にFacebookページと連携することができます。
アカウントのアイコン(人型のアイコン)がInstagramの画面右下にありますので、タップします。
次に上の画像のように、三本線のアイコンをタップし、画面下の設定アイコンをタップしてください。
アカウントをタップします。
今回はビジネスプロフィールに変更したいので、ビジネスを選んで「次へ」をタップします。
画面の指示の通りに進んでください。
Facebookページを選んで次へをタップして終了します。
これでInstagramが個人プロフィールからビジネスプロフィールに変更され、Facebookページと連携できました。
複数のFacebookページと連携することはできません。複数ある場合は一つを選ぶ必要があります。
以下のURLよりFacebook開発者ページに移行します。
https://developers.facebook.com/
Facebookにログインしている状態であれば、ログインの必要はありません。
右上のマイアプリから+アプリを作成をクリックします。
表示名を入力してください。
公開されるものではないので、管理しやすい表示名で大丈夫です。
ログインしている状態であれば連絡先メールアドレスの入力は必要ありません。
ログインしていなければ連絡先メールアドレスを入力してください。Facebookで連携しているメールアドレス以外でもOKです。
次の画面でセキュリティチェックを済ませて、さらに次のシナリオの洗濯画面で
4つの選択肢から1つを選択肢して「次へ」か「スキップ」ボタンを押して次へ進みます。
この画面が表示されれば、完了です。
アクセストークンには有効期限があります。
1時間→2ヶ月→無期限と3段階でアクセストークンを取得していきます。
無期限のアクセストークンを取得するためには、GraphAPIエクスプローラーへアクセスします。
https://developers.facebook.com/tools/explorer/
取得までにGraphAPIエクスプローラーを使い倒しますので、作業しているうちに小慣れてくると思います。
画面のようにアプリが先ほど作成したアプリ名になっていることを確認してください。
すでにアクセストークンが入っている時はデリートしてください。
「トークンを取得」→「ユーザーアクセストークンを取得」でアクセス許可を選択画面が開きます。
通常であれば自分のInstagramアカウントとの連携なので、
にチェックを入れて「アクセストークンを取得」をクリックします。
管理者としてのログイン認証と連携の認証がありますので、「ログイン」と「OK」で進めてください。
アクセストークンデバッガでは取得したアクセストークンを確認することができます。
以下のURLより確認画面へアクセスしてください。
https://developers.facebook.com/tools/debug/accesstoken
アクセストークンをペーストすると画面のようにアクセストークンの概要を調べることができます。
この先もあと2回アクセストークンを取得していきますので、それぞれ確認することをおすすめします。
先ほど取得したアクセストークンの有効期限を2ヶ月に延長する作業をするには、下の画面のようにアクセストークンの左側にある青色のアイコンをクリックし、アクセストークン情報を開きます。
情報を確認したら「アクセストークンツールで開く」をクリックします。
すると、先ほど確認したアクセストークンデバッガの画面にアクセスしますので、画面下の「アクセストークンを延長」をクリックし、セキュリティ認証を確認するためパスワードを入力して「送信する」ボタンをクリックしてください。
1時間以内に上記の作業を完了すると、有効期限2ヶ月のアクセストークンの取得に成功します。
この画面では、有効期限2ヶ月のアクセストークンの全容が確認できませんので、画面右側の「デバッグ」をクリックするとアクセストークンデバッガに遷移します。
画面上部のアクセストークンがが有効期限2ヶ月のアクセストークンになります。
有効期限が2ヶ月になっていることも確認できます。
無期限のアクセストークンの取得で最後です。
最後のアクセストークンの取得は、Graph APIエクスプローラーで行います。
https://developers.facebook.com/tools/explorer/
画像のように
アプリは作成したアプリ名が表示されていることを確認し、
アクセストークンには有効期限2ヶ月のアクセストークンをペーストし、
下のGET→から始まるテキストボックスには、以下のコードをペーストしてください。me/accounts
隣の「送信」をクリックすると、
全てのFacebookページのアクセストークンが表示され、
その中でInstagramビジネスアカウントと連携したFacebookページが今回必要な無期限のアクセストークンになります。
お疲れ様でした。以上で無期限のアクセストークンの取得は完了しました。
次に取得したアクセストークンが無期限かどうかの確認に移ります。
アクセストークンデバッガにアクセスします。
https://developers.facebook.com/tools/debug/accesstoken/
取得した無期限のアクセストークンをペーストしてデバッグボタンをクリックします。
画面のように有効期限が「受け取らない」となっていたら、成功です!
Graph APIエクスプローラーへアクセスします。
https://developers.facebook.com/tools/explorer/
me?fields=instagram_business_account
こちらで、Instagram Graph APIを利用するための下準備が完了します。
次に、インスタグラムの写真等の情報を取得するために「無期限のアクセストークン」と「InstagramビジネスアカウントID」が必要となります。
【InstagramビジネスアカウントID】と【無期限のアクセストークン】、【id名】、【表示したい件数:例12】を以下のソースコードに代入します。
【】は外してください。
1234567891011121314151617181920212223242526272829303132333435363738394041<!-- Instagramの投稿出力 -->
<script>
window.addEventListener('DOMContentLoaded', function(){
var igID = '【InstagramビジネスアカウントID】';
var token = '【無期限のアクセストークン】';
var ulID = '【id名】';
postOutputInsta(igID, token, ulID);
}, false);
function postOutputInsta(igID, token, ulID) {
const num = 【表示したい件数:例12】;
const XHR = new XMLHttpRequest();
const fAPI = 'https://graph.facebook.com/';
const query = 'media.limit(' + num + '){caption,like_count,media_url,permalink,timestamp}';
const gURL = fAPI + igID + '?fields=' + query + '&access_token=' + token;
if(XHR){
XHR.open('GET', gURL, true);
XHR.send(null); // nullは省略してもOK
XHR.onreadystatechange = function(){
var html = '';
if(XHR.readyState === 4 && XHR.status === 200){
var insta = JSON.parse(XHR.responseText);
if (insta['media']) {
if (insta['media']['data']) {
$.each(insta['media']['data'],function(index, elem) {
//html生成
html += '<li>';
html += '<a href="' + elem.permalink + '"><img src="' + elem.media_url + '" alt="" /></a>';
html += '</li>';
});
}
}
} else {
//エラー時の表示
html += '<li>通信エラー</li>';
}
$('ul#' + ulID).html(html);
};
}
}
</script>
表示したい箇所(html)に以下ソースをいれてください。
1<ul id="【id名】"></ul>
取得できていれば、Instagramの写真が一覧で取得されます。
取得に失敗してれば、通信エラーと表示されるようになっていますので、最初から見直してみてください。
従来の方法(Instagram APIのSandbox)を使用するよりも手間がかかりますが、2020年までには移行を完了したいですね。
ご紹介した方法は、2020年以降でも安心してInstagramの情報を取得できる方法です。
一度お試しください。
【関連記事】
自社ECサイトの集客方法7選【費用対効果が高いのはどれ?】
【アクセス数倍】ネットショップのアクセス数を増やす方法7選
ブランディングで育てるECコンサルティング会社を経営。ECコンサルタント兼Webマーケターとして、中小企業向けに100社以上のECサイト構築、50社以上の課題解決を支援。ブランディングデザイナーとして、ブランドの魅力を可視化し「選ばれるECサイト」へ。全日本SEO協会会員で、SEO集客にも強み。
ECコンサルティングの最新記事をお届けします