これはなに?
Instagram Graph API と Pythonを使ってInstagramのユーザー情報とかメディアの情報を取得してみたので、取得した項目とサンプルコードをあげます。API自体の使い方も結構癖があるのですが、何よりアクセストークンの発行とビジネスアカウントIDの取得が中々大変でした。
環境
- Python3
- jupyter notebook
Instagram Graph API実行に必要な情報
- アクセストークン
- ビジネスアカウントID
アクセストークン発行/ビジネスアカウントID取得
以下のリンク先が参考になったので、こちら参照してください。
- Instagram Graph APIとGAS(Google Apps Script)を使ってインスタグラムのフォロワー数を自動的に日々記録する - Qiita
- Instagram Graph API を利用してつまづいた話 | コーヒー飲みながら仕事したい
InstagramとFacebookの連携がうまく行かずに何故かビジネスアカウントIDが取得できないという不具合に悩まされたのですが、一度Facebookとページを削除し、再作成と再リンクしたところうまくいきました。
Instagram Graph APIの利用
アクセストークンとビジネスアカウントIDができていれば、必要な情報を乗っけてAPIコールするだけなので結構簡単です。サンプルとして、ポルカの公式アカウントの情報を取ってきてみました。
IGユーザービジネスディスカバリー
フォロワー数等ユーザーの基本情報を取得できる。
GET /{ig-user-id}?fields=business_discovery.username({username})
フィールド名 | 説明 |
---|---|
name | 表示名 |
username | ユーザー名 |
biography | ユーザー説明欄 |
follows_count | フォロー数 |
followers_count | フォロワー数 |
media_count | 投稿数 |
ビジネスディスカバリー - Instagramプラットフォーム - ドキュメンテーション - Facebook for Developers
サンプル結果
IGメディア
投稿のいいね数などのメディアの情報を取得できる。
GET /{ig-media-id}?fields={fields}
IGメディア - Instagramプラットフォーム - ドキュメンテーション - Facebook for Developers
フィールド名 | 説明 |
---|---|
id | 投稿ごとのユニークID |
like_count | いいね数 |
comments_count | コメント数 |
timestamp | タイムスタンプ |
caption | キャプション |
media_type | メディア種類 |
サンプル結果
メディアごとのコメントの内容を取りたかったのですが、権限不足なのかエラーとなりました。
IGメディア情報の集計、可視化
いいね数とコメント数をmatplotlibを使って可視化。
いいね数が凹んでいることろは、配信開始のお知らせのVIDEO系でした。
いいねが多い順
最近のライブ写真がトップ。雫さんかっけえ。
コメントが多い順
一発目の投稿がめちゃくちゃコメント多いですね。
サンプルコード
各サンプル結果を取得しているのはこちらのサンプルコードを利用しています。
”<xxx>” の項目を自身の環境に合わせて修正して実行してみてください。
ユーザー情報(IGユーザービジネスディスカバリー)
メディア情報(IGメディア)
最後に
Instagram Graph APIを使えば、過去の投稿の分析などがはかどりますね。他のユーザーの情報を引っ張ってくるには、権限的にできないこともありそうなので要調査。TwitterAPIと違ってサンプルコード等の情報が少ないので、InstagramAPIは使うのが大変。
今回は構造化データを取っただけですが、次は画像取ってきて分析までやれたらいいなと思います。
【202109追記】ユーザー情報をGoogleスプレットシートに溜めて分析する環境作ってみました。 www.cloudnotes.tech