Instagramのフォロワー数をAPIで取得する
Instagramのフォロワー数取得にFacebookを使う必要が有り、両方のアカウントが必要になります。
・Facebookのアカウントが必要になります。
・Instagramのプロアカウントのみ取得可能です。プロアカウントに変更する必要が有ります。
Facebookアプリの作成
まずは、Facebookのマイアプリにアクセスします。
- アプリを作成ボタンを押す
- アプリ名を適当に(InstTestとかでも)、連絡先メールアドレスを入力して次へ
※Metaの使っている名前、InstaやFacebook等が含まれる文字は使えないようです。
- ユースケースはその他を選択して次へ
- アプリタイプ:ビジネスを選択
- ビジネスポートフォリオは選択せず、アプリを作成
- アプリに製品を追加:Instagramの設定を押す
※この辺りの手順は順番含めて結構変わるようなので、参考程度に(実際テスト中に変わった)。
その場のノリでCool! とか言って変えてるんでしょうかね。
Instagram ログインによるAPI設定
Instagramの設定を押した後の画面(メニューからは、商品>InstagramログインによるAPI設定)で設定を続けます。
現状(アプリレビューをしていない状態)では、テスト登録したユーザーしか通らないので、まずはテストユーザーを登録します。
※Instagramのプロアカウントでないと駄目なので、プロアカウントへ変更しておきます。
- アプリの役割>役割を選択して、右上のメンバーを…のボタンを押します。
- Instagram テスターを選択して、instaのログイン時に使用出来るユーザーネームを入力して、一覧から該当のものを選択します。
この時点では、ユーザーは追加されますが、承認待ち状態です。
- Instagramにログインしてプロフィールの歯車アイコン>アプリとウェブサイトを選択します。
- テスターへのご招待で、入力したアプリ名の承認するを押します。
これで承認待ちが消え、アプリに使えるユーザーになります。
商品>InstagramログインによるAPI設定を選択し、
3. Instagramビジネスログインを設定する で、リダイレクトURLを設定します。
このURLにtokenとの交換用codeが飛ぶので、自身の管理するURLを入力します。
埋め込みURLをコピーしてブラウザでアクセスすると、Instagramのログインフォームが出るので、上で追加したテストユーザーでログインを行います。
※プロアカウントでないと、プロアカウントへの移行を促されるので、プロアカウントへ変更してから再度アクセスします。
codeからtokenへの交換
ログインに成功すると、リダイレクト先のURLにcodeパラメータが送られるので、例えばPHPであれば$_GET[“code”]で取得します。
POSTパラメータに以下を設定し、
https://api.instagram.com/oauth/access_token にPOSTします。
- client_id : InstagramログインによるAPI設定 の InstagramアプリID
- client_secret: InstagramログインによるAPI設定 の Instagram app secret(表示にパスワード入力が必要)
- grant_type: 文字列で、 authorization_code を指定します。
- redirect_uri: ビジネスログインで指定したリダイレクトURL
- code: 渡って来たcode
成功するとJSON形式で、access_token, user_id等が返って来ます。
tokenから長期tokenへの交換
先ほどのtokenは1時間しか有効期間が無いので(後で知ったのですが)、60日間有効な長期tokenへと交換しておきます。
今度はGETで送れます。
https://graph.instagram.com/access_token
- grant_type: 文字列で、ig_exchange_token を指定します。
- client_secret: InstagramログインによるAPI設定 の Instagram app secret(表示にパスワード入力が必要)
- access_token: 先ほどJSONで返って来た access_token
成功するとJSON形式で、access_token, expires_in等が返って来ます。
いよいよInstagram のフォロワー数を取得するAPIを使う
単にフォロワー数取得するだけなのに、くそ長かったですね。
ここまで来て使うのは、長期tokenだけ(またはtokenでも可)です。
URLの生成は、PHPを例にします。
$Fields = [
// public
"id",
"biography",
"followers_count", // ユーザーをフォローするInstagramユーザーの合計数
"media_count",
"username", // プロフィールユーザー名
"website",
// private
"name",
"profile_picture_url",
"follows_count", // ユーザーがフォローするInstagramユーザーの合計数
];
//
$Get = [
"access_token"=>$token,
"fields"=>implode(",", $Fields),
];
$url = 'https://graph.instagram.com/v21.0/me?'.http_build_query($Get);
echo $url;
生成されたURLにブラウザでアクセスすると、Fieldsで指定したパラメータがJSON形式で返って来ます。
これで漸くフォロワー数が取得出来ました。
長期tokenの更新
長期tokenも60日で切れるので、時期が来たら更新が必要になります。設定するパラメータは次の2つです。
※ここで使えるのは長期tokenのみです。
- grant_type: 文字列で ig_refresh_token を指定
- access_token: 更新する長期token
この投稿は 2024年11月13日 水曜日 17:34 に 未分類 カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購読することができます。
このページの一番下でコメントを残すことができます。トラックバック / ピンバックは現在受け付けていません。