#021
posted on 2021.01.17

InstagramグラフAPIでハッシュタグやアカウント名を指定して投稿の取得。

InstagramグラフAPIで、ハッシュタグまたはアカウント名を指定してInstagramの投稿をJSONデータで取得する方法のメモ。

(アカウント名指定の場合、対象アカウントがビジネスアカウントかクリエーターアカウントでなければデータの取得ができない。)

 

※ InstagramグラフAPIの有効期限の無いアクセストークンとビジネスアカウントIDの取得方法は前の記事を参照。

※ 取得したJSONデータの整形は前の記事を参照。

 

グラフAPIバージョン v9.0で検証。(グラフAPIのバージョン情報。)

 

インスタグラムのハッシュタグ指定で投稿を取得

自分が保有する「ビジネスアカウントのID」と「無期限アクセストークン」が事前に必要。

  1. ハッシュダグのIDを取得。
  2. ハッシュダグのIDを指定して投稿情報を取得。

※ v9.0の時点で、おそらく取得件数の指定はできずデフォルト25件。(必要があれば、JSONデータの「’paging’」で取得できる「’after’」や「’next’」の値を使って次の25件を取得する。)

 
ハッシュタグのIDを取得

ハッシュタグ検索の公式リファレンス

$graphapi_url = 'https://graph.facebook.com/v9.0/';//バージョンに合わせて変更
$id = 'ビジネスアカウントのID';
$query = 'IDを取得したいハッシュタグ';
$access_token = '無期限アクセストークン';

$data_url = $graphapi_url.'ig_hashtag_search?user_id='.$id.'&q='.$query.'&access_token='.$access_token;

 

ハッシュタグの投稿を取得

「最近の投稿」(recent_media)か「人気の投稿」(top_media)を指定して取得。

v9.0で使用できる条件のパラメーター : recent_media,top_media

「最近の投稿」で取得できる「fields」のパラメーターの公式リファレンス

「人気の投稿」で取得できる「fields」のパラメーターの公式リファレンス

v9.0で取得できるパラメーター : caption,children,comments_count,id,like_count,media_type,media_url,permalink,timestamp

$graphapi_url = 'https://graph.facebook.com/v9.0/';
$hashtag_id = 'ハッシュダグのID';
$condition = 'recent_media(最近の投稿)かtop_media(人気の投稿)';
$id = 'ビジネスアカウントのID';
$fields = '取得したいパラメーター';
$access_token = '無期限アクセストークン';

$data_url = $graphapi_url.$hashtag_id.'/'.$condition.'?user_id='.$id.'&fields='.$fields.'&access_token='.$access_token;

 

 

インスタグラムのアカウント名指定で投稿を取得

自分が保有する「ビジネスアカウントのID」と「無期限アクセストークン」が事前に必要。

 

InstagramグラフAPIが提供する、自分以外のビジネスアカウントとクリエーターアカウントの情報取得ができるBusiness Discoveryの機能を使ってJSONデータを取得する。

 

Business Discoveryで取得できる「fields」のパラメーターの公式リファレンス

(取得できるのはビジネスアカウントかクリエイターアカウントになっているユーザーの投稿のみ。)

v9.0で取得できるパラメーター : id,ig_id,username,profile_picture_url,media_count,followers_count,follows_count,name,biography,website,permalink,media_type,media_url,children

$graphapi_url = 'https://graph.facebook.com/v9.0/';
$id = 'ビジネスアカウントのID';
$username = '取得したいアカウントのスラッグ';
$post_num = 10;//取得したい投稿数
$fields_01 = '取得したいアカウントのパラメーター';
$fields_02 = '取得したいメディアのパラメーター';
$access_token = '無期限アクセストークン';

$data_url = $graphapi_url.$id.'?fields=business_discovery.username('.$username.'){'.$fields_01.',media.limit('.$post_num.'){'.$fields_02.'}}&access_token='.$access_token;

 

 

この記事をシェア

この記事へのコメント

コメントの書き込みはまだありません。

  • コメント内のタグはエスケープ処理され、文字列として出力されます。
  • セキュリティーのため、投稿者のIPアドレスは取得されます。
  • 管理者が内容を不適切と判断したコメントは削除されます。
  • このフォームにはスパム対策として、Googleの提供するreCAPTCHAシステムが導入されています。
    (Google Privacy Policy and Terms of Service.)