FBアプリの作成からトークンの取得まで

基本方針

基本的に下記のスタートガイドに準じる
Instagram基本表示APIスタートガイド

以下、各工程の注意点のみ

ステップ1:Facebookアプリを作成する

任意の名前でアプリを作成したら
設定 > ベーシックからプラットフォーム「ウェブサイト」を追加
file

file

file

ステップ2:Instagram基本表示を構成する

プロダクト、Instagramを追加し、Basic DisplyをCreate new Appする
file

file

リダイレクトURL関連の設定
以下に設定するURLはいったん同一にしておく

  • 有効なOAuthリダイレクトURI
  • コールバックURLの許可の取り消し
  • データ削除リクエストコールバックURL

ステップ3:Instagramテストユーザーを追加する

役割 > インスタグラムテスターを追加 から
file

file

Instagramアカウント側の設定

新しいウェブブラウザーを開き、www.instagram.comにアクセスして、先ほど招待したInstagramアカウントにログインします。(プロフィールアイコン) > [プロフィールを編集] > [アプリとウェブサイト] > [テスターの招待]に移動し、招待を受け入れます。

ステップ4:テストユーザーを認証する

Instagram側のブラウザで以下を開く

https://api.instagram.com/oauth/authorize
  ?client_id={app-id}
  &redirect_uri={redirect-uri}
  &scope=user_profile,user_media
  &response_type=code

file

リダイレクトされたURLをメモ帳にコピー、取得できたコードを記録しておく
併せて「#_」がリダイレクトURIの末尾に追加されていますが、これは不要なので削除しておく

ステップ5:トークンを取得するためにコードを交換する

※「\」はターミナルにおける改行を意味する

curl -X POST \ https://api.instagram.com/oauth/access_token \
-F client_id={app-id} \
-F client_secret={app-secret} \
-F grant_type=authorization_code \
-F redirect_uri={redirect-uri} \
-F code={code}

トークンの延長

https://graph.instagram.com/access_token
 ?grant_type=ig_exchange_token
 &client_secret={instagram-app-secret}
 &access_token={short-lived-access-token}

メディアデータの取得

とりあえずコード貼り付けてみる

トークンについてはいろいろ解説しているところがあるので一旦省きます。
スーパー適当な実証コードなんであとはがんばってください
トークンの更新処理はそのうち書く予定

<?php
$url = "https://graph.instagram.com/me/media?fields=id,media_type,media_url,permalink,thumbnail_url&access_token={access-token}&limit={欲しい件数}";
$ch = curl_init(); // 1. 初期化
curl_setopt( $ch, CURLOPT_URL, $url ); // 2. オプションを設定
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec( $ch ); // 3. 実行してデータを得る
curl_close($ch); // 4. 終了

$array = json_decode( $result, true );
                for ( $i = 0; $i < count( $array[ "data" ] ); $i++ ) {
                    if($array[ "data" ][ $i ][ "media_type" ] == "VIDEO"){
                        $standardResolution = $array[ "data" ][ $i ][ "thumbnail_url" ];
                    }else{
                        $standardResolution = $array[ "data" ][ $i ][ "media_url" ];                        
                    }
                    $post_url = $array[ "data" ][ $i ][ "permalink" ];

                    echo '<li><a href="'.$post_url.'" target="_blank" ><img src="'.$standardResolution.'" width="176" height="117"></a></li>';

                }

//echo $result;
?>
Last modified: 2020-05-29