instagram基本表示APIの使い方③メディア情報の取得

API

どうもイトサル(@itosaru)です。

instagramのAPIを使ってみたいです。
投稿情報を取得するにはどうすればいいでしょうか。

この記事ではinstagram基本表示APIを使って投稿(メディア)情報を取得するプログラムについて説明します。

なおプログラムはPythonを使います。


メディア情報の取得方法は2つある

instagram基本表示APIを使ったメディア情報の取得には2つの方法があります。

  1. 単独のメディア情報を取得する
  2. 複数のメディア(アルバム)情報を取得する

注意点としてはどちらも1つの特定の投稿のものを対象に取得するという点です。

後者のアルバムは複数のメディアを1つの投稿でアップロードできる機能ですね。

特定の1つの投稿ではなく複数の投稿情報を取得したい場合は「get_user_media()」を使います。

「get_user_media()」の詳細はこちらをご覧ください。

instagram基本表示APIの使い方②ユーザー情報の取得
instagram基本表示APIではユーザー情報を取得するメソッドが2つあります。一つは自分自身のプロフィール情報の取得するもの、もう一つは自分が投稿したメディアの情報を取得するものです。この記事ではその2つの情報をPythonプログラムを使って取得する方法についてお伝えします。

サンプルプログラム

メディア情報を取得するサンプルプログラムを書きました。

なおプログラムを実行するうえで「instagramBasicDisplay」ライブラリが必要です。

まだインストールしていない場合は下記pipコマンドを実行してインストールしましょう。

pip install instagram-basic-display

なおこのプログラムは前回までのinstagram基本表示APIをベースに機能追加しています。

from instagram_basic_display.InstagramBasicDisplay import InstagramBasicDisplay

instagram_basic_display = InstagramBasicDisplay(app_id ='InstagramアプリID', app_secret='Instagram App Secret',redirect_url='設定したリダイレクトURL')

def get_authorize_code():
    print(instagram_basic_display.get_login_url())

def get_access_token(authorize_code):
    auth_token = instagram_basic_display.get_o_auth_token(authorize_code)
    print(auth_token)

def get_profile(access_token):
    profile = instagram_basic_display.get_user_profile()
    print(profile)

print()
print("区分を入力してください")
print("1:認証コード発行")
print("2:アクセストークン発行")
print("3:プロフィール情報取得")
print("4:メディア情報一括取得")
print("5:メディア情報取得")
print("6:アルバム情報取得")

kbn = int(input())

if(kbn == 1):
    get_authorize_code()
elif(kbn == 2):
    authorize_code = input("認証コードを入力してください:")
    get_access_token(authorize_code)
elif(kbn == 3):
    access_token = input("アクセストークンを入力してください:")
    instagram_basic_display.set_access_token(access_token)

    #プロフィールの取得
    profile = instagram_basic_display.get_user_profile()
    print()
    print(profile)

elif(kbn == 4):
    access_token = input("アクセストークンを入力してください:")
    instagram_basic_display.set_access_token(access_token)

    #投稿したメディアの取得
    media = instagram_basic_display.get_user_media()
    print()
    print(media)

elif(kbn == 5):
    access_token = input("アクセストークンを入力してください:")
    instagram_basic_display.set_access_token(access_token)

    media_id = input("メディアのidを入力してください:")

    #投稿したメディアの取得
    media = instagram_basic_display.get_media(media_id)
    print()
    print(media)
    
elif(kbn == 6):
    access_token = input("アクセストークンを入力してください:")
    instagram_basic_display.set_access_token(access_token)

    media_id = input("メディアのidを入力してください:")

    #投稿したメディアの取得
    media = instagram_basic_display.get_media_children(media_id)
    print()
    print(media)

メディア情報を取得する前段階として

  1. アクセストークン発行用の認証コードの発行
  2. 認証コードを使ったアクセストークンの発行

の2つが必要です。

詳しくはこちらの記事をご覧ください。

instagram基本表示APIの使い方①アクセストークンを発行する
instagram基本表示APIの使い方として基本となるものはアクセストークンの発行です。このアクセストークンを発行するためには認証コードを発行する必要があります。この記事ではその認証コードおよびアクセストークンを発行するためのPythonプログラムについて説明します。

単独のメディア情報を取得するメソッド

1つの投稿の単独メディアを取得するには

get_media()

を使います。

引数としてメディアのIDが必要です。

メディアのIDはメディア情報の一括取得「get_user_media()」で確認することができます。

instagram基本表示APIの使い方②ユーザー情報の取得
instagram基本表示APIではユーザー情報を取得するメソッドが2つあります。一つは自分自身のプロフィール情報の取得するもの、もう一つは自分が投稿したメディアの情報を取得するものです。この記事ではその2つの情報をPythonプログラムを使って取得する方法についてお伝えします。

実行した結果はこちら。

リターンデータは「get_user_media()」とほぼ一緒ですが、こちらは単独のメディアを取得するものなのでpaging情報が付随していません。

複数のメディア(アルバム)情報を取得するメソッド

1つの投稿のアルバム情報を取得するには

get_media_children()

メソッドを使います。

引数として「get_media()」同様メディアのIDが必要です。

実行した結果がこちら。

アルバムにあるメディア情報を一括で取得することができました。

なおアルバムではない単独のメディアのIDを指定した場合は空データが返ってきます。

まとめ

この記事ではinstagram基本表示APIを使ってメディア情報を取得する方法についてお伝えしました。

今回の内容の振り返りです。

  • 単独のメディア情報を取得する:get_media()
  • 複数のメディア(アルバム)情報を取得する:get_media_children()

どちらも引数としてメディアのIDが必要なので、「get_user_media()」とセットで使うことになりそうですね。


コメント

タイトルとURLをコピーしました