Back to tech

Instagram API を使って投稿を取得する

2 min read
Table of Contents

お久しぶりです。みやかわです。

InstagramのAPIを使う機会があったので忘れないようにメモを書いておきます。

[affi id=1]

Instagram

Instagramとは

殆どの皆様はInstagramについて知っていると思いますが、一応何かを書いておきます。

Instagramとはメタ・プラットフォームズ(旧:Facebook)が所有している写真とビデオに特化したSNSです。

Instagram
instagram.com
image

APIについて、以前まで(5年くらい前の話)は、企業しかAPIを公開していませんでした。

しかし、メタ・プラットフォームズに買収されてからは個人でもAPIを使えるようになりました。

APIが公開されたことにより、投稿の検索やユーザーアカウント情報を簡単に取り出すことができるようになりました。

Instagram APIを使ってみる

APIを使うまでの道のり

Instagram APIを使うまでの概要を下記にまとめました。

個人的な感想ですが、初期設定がかなりめんどいです。

初期設定

アカウント開設

まずはInstagramのアカウントFaceBookのアカウントを開設します。

Instagram

Facebook

InstagramアカウントをProにする

次に Instagram を Proアカウントにします。

Proアカウントになっても無料です。

プロフィール編集からプロアカウントに切り替えることができます。

クリエーター向けかビジネス向けかを聞かれますが、たしかどちらでも良いはずです。

間違っていたらごめんなさい。

Facebookに個人ページを開設する

Facebookに移動し、個人用のページを作成します。

その次にページの設定からInstagramとリンクさせます。

リンクさせると以下のような画面になります。

これでアカウントの準備はOKです。

Tokenの取得

ここまでできたら次はTokenの取得です。

Meta for Developer のサイトに行きます。

そして、アプリの作成をします。

アプリを作成し終えたら、上タブにある グラフAPIエクスプローラを開きます。

そして、以下のようにTokenの設定してあげて Generate Access Token を押す。

生成されたTokenをどこかにコピーする。

これでTokenが完成です。

Token取得するまでの道のりがかなり長いです。

投稿を取得してみる

プログラムをいい感じに作って投稿を取得してみます。

とりあえず #写真 のハッシュタグがついている投稿を取得してみます。

コード

結果

{'data': [{'caption': '🎌\n奈良市 平城京跡 大極殿\n2021年11月28日\n酔い覚まし🍶\nお写ん歩スナップ📸\n\n青空に鮮やかな大極殿✨\n\nCamera : EOS R5\nLens : RF24-70mm F2.8 L IS USM\n\n⬇️サブ垢はこちら⬇️\nblueimpulse.hiro.358 \n\n#canon \n#photo \n#photography \n#camera \n#canonphotography \n#eos \n#canonphoto \n#canonphotos \n#my_eos_photo \n#本日のyoureos \n#写真好きな人と繋がりたい \n#写真 \n#写活 \n#カメラ好きな人と繋がりたい \n#写真撮ってる人と繋がりたい \n#カメラ \n#写真を撮るのが好きな人と繋がりたい \n#ミラーレス一眼 \n#ミラーレス \n#mirrorless \n#eosr5 \n#お写ん歩 \n#お散歩 \n#奈良県 \n#奈良市 \n#平城京 \n#平城宮跡 \n#遺跡 \n#世界遺産 \n#推し奈良フォトコンテスト \n🇯🇵日本大好き💕', 'id': '17976752767459879'}, {'caption': '📸2021.11\nCanon EOS R5\nEF70-300mm F4-5.6 L \nIS USM\n\n『散秋』\n\n#カメラ男子 \n#カメラ \n#カメラ部 \n#カメラ散歩 \n#カメラ好き \n#カメラ旅 \n#カメラ好きと繋がりたい \n#カメラ撮ってる人と繋がりたい \n#写真撮影 \n#風景写真を撮るのが好きな人と繋がりたい \n#風景写真が好き \n#ファインダー越の風景 \n#ファインダーの向こう \n#ファインダーは私のキャンパス \n#ファインダー越しのわたしの世界 \n#ファインダー越し私の世界 \n#ファインダー越しの風景 \n#ファインダーは私のキャンバス \n#ミラーレス一眼 \n#ミラーレス \n#ミラーレスカメラ \n#一眼レフ \n#一眼レフカメラ \n#一眼レフのある生活 \n#広島観光', 'id': '17963886559515590'}, {'caption': '凛々しめ😈', 'id': '17930319442909223'}, {'caption': "愛媛県伊予市の\n#伊予稲荷神社 奥宮( '-' )\n\n#shikokucameraclub\n#α7riv\n#japan_of_insta\n#sigma85mmart\n#cyuyonavi2021\n#キリトリセカイ\n#キタムラ写真投稿\n#カメラのある暮らし\n#ファインダーは私のキャンバス\n#ファインダー越しの私の世界\n#海賊フォト\n#愛媛カメラ部\n#四国\n#愛媛県\n#伊予市\n#ダレカニミセタイケシキ\n#カメラ\n#けしからん風景\n#alpha_newgeneration\n#Japan\n#広がり同盟\n#total_japan_\n#瀬戸内カメラ部\n#神戸カメラ部\n#東京カメラ部\n#shrine\n#神社好きな人と繋がりたい", 'id': '17876899298538326'}, {'caption': '光線バッチリ!\nこのローカル感が良いですね〜\n\n#ローカル線\n#普通列車 \n#鉄道 \n#鉄道写真 \n#鉄道風景 \n#鉄道好きな人と繋がりたい \n#写真 \n#写真好きな人と繋がりたい \n#写真撮ってる人と繋がりたい \n#カメラ \n#カメラ好きな人と繋がりたい \n#ファインダー越しの私の世界 \n#東京カメラ部\n#instagram \n#instagramers \n#instagramjapan \n#instagood \n#instalike \n#ig_japan \n#japan \n#japanese \n#japan_of_insta \n#railway \n#photo \n#photographer \n#photo_jpn \n#canon', 'id': '17943389551664646'}], 'paging': {'cursors': {'after': 'MGRlMzdhZAWY0OGJiNDBhMTg1ZAjQ4NTkyNzMyYTA0OTAZD'}, 'next': 'https://graph.facebook.com/v12.0/17842267372066786/top_media?access_token=EAAVvr4m3jlUBAJoc0FyQIptZCNMRUDCwbTXdEeSk0njdoCrOSLD6pATdsehI0x6lpfFI12SFS4ZBh8j15a6W3Db8ZCXdKnkYcqVwhZBQLilhdTRPZAjpgeUL8Ht7BQrb54CCZCHSipjSW4G6IbpTaPVpEFwQtueXGeJVqNXXEBDxqHKByscDxZAgV4qPVgQM6kZD&fields=caption&user_id=17841403696078654&limit=5&after=MGRlMzdhZAWY0OGJiNDBhMTg1ZAjQ4NTkyNzMyYTA0OTAZD'}}
  • fields  オプションについて https://developers.facebook.com/docs/graph-api/overview 雑にまとめるとこのオプションで投稿された画像URLや文章、いいねの数等々が取れる。 役立ちそうなもの:name, media_type, comments_count, like_count
  • limit オプションについて 取得する投稿数 7日間で最大30個の一意のハッシュタグをクエリできる。

参考になるAPI資料

まとめ

雑にですがInstagram APIで投稿を取得してみました。

初期設定がかなりめんどいですが、個人でも使えるようになったのでとても良いです。

Instagram API を使って遊んでいきたいと思います。

そのほか

Instagramのアカウントを持っているので、よかったらフォローしてください。

フォトグラファー(自称)として活動しています。

www.instagram.com
www.instagram.com