【Python】インスタユーザの情報抽出(フォロワー数・メディア等)|Instagram Graph APIで運用自動化

こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!

こんな方におすすめ!
  • Instagram Graph APIを活用してインスタ運用を効率化したい
  • Instagram Graph APIをもとにユーザー情報(フォロー・フォロワー・メディア)を取得する方法が知りたい
目次

Instagramの運用自動化とは|何ができるの?

Instagramの運用自動化とは、これまで手作業で行なってきたインスタ操作をシステムで自動化することを指します。

Instagramの運用自動化は、Meta(旧Facebook)が提供するInstagram Graph APIを活用すると実現でき、具体的に上記の操作が自動化できるようになります。

インスタアプリ上での操作は全て自動化できることが分かりますね。Instagram APIの機能を組み合わせると、インスタデータの自動収集、グラフ作成や結果考察という一連作業もまとめて効率化できるようになります。

Instagram運用の自動化|APIの利用

Instagramの自動操作を実現するには、Meta(旧Facebook)が提供するInstagram Graph APIを活用します。

InstagramグラフAPIとは、Meta開発者向けに提供されるInstagram運用の効率化ツールになります。

Instagramの運用自動化を検討する場合、Meta For Developersにて以下の認証情報を取得しておく必要があります。

  • アクセストークン
  • アプリID
  • アプリシークレット
  • インスタグラムビジネスアカウントID

上記の具体的な取得方法についてはこちらの記事で解説しています。

Python活用によるInstagram自動操作|本記事での解説内容

本記事ではPythonを活用して「インスタユーザーの基本情報(フォロー・フォロワー数・投稿メディア)を取得する方法」について解説します。

PythonでAPIを呼び出す際、requestsモジュールを活用します。インストールが未済の場合、ターミナルまたはコマンドプロンプトを開き、以下を実行しておきましょう。

pip install requests

【Python】Instagram Graph API呼出関数を作成

Instagram Graph APIをPythonで呼び出すためのコードを作成していきます。

【事前準備】Instagram Graph APIの認証用関数を作成

はじめに、Instagram Graph APIを使用するための、API認証用関数を作成します。

認証には以下のコードを用い、XXXX部分を必要な認証情報に書き換えて利用しましょう。

import requests
import json
import datetime
from pprint import pprint

def basic_info():
    # 初期
    config = dict()
    # 【要修正】アクセストークン
    config["access_token"]         = 'XXXXXXX'
    # 【要修正】アプリID
    config["app_id"]               = 'XXXXXXX'
    # 【要修正】アプリシークレット
    config["app_secret"]           = 'XXXXXXX'
    # 【要修正】インスタグラムビジネスアカウントID
    config['instagram_account_id'] = "XXXXXXX"
    # 【要修正】グラフバージョン
    config["version"]              = 'v14.0'
    # 【修正不要】graphドメイン
    config["graph_domain"]         = 'https://graph.facebook.com/'
    # 【修正不要】エンドポイント
    config["endpoint_base"]        = config["graph_domain"]+config["version"] + '/'
    # 出力
    return config

【事前準備】Instagram Graph API呼出関数を作成

続いて、インスタグラム Graph APIを呼び出す関数を作成します。

以下のコードをそのままコピー&ペーストしましょう。

import requests
import json
import datetime
from pprint import pprint

# APIリクエスト用の関数
def InstaApiCall(url, params, request_type):
    
    # リクエスト
    if request_type == 'POST' :
        # POST
        req = requests.post(url,params)
    else :
        # GET
        req = requests.get(url,params)
    
    # レスポンス
    res = dict()
    res["url"] = url
    res["endpoint_params"]        = params
    res["endpoint_params_pretty"] = json.dumps(params, indent=4)
    res["json_data"]              = json.loads(req.content)
    res["json_data_pretty"]       = json.dumps(res["json_data"], indent=4)
    
    # 出力
    return res

上記記載の認証関数およびInstagram Graph API呼出関数が正常に動作するか確認したい場合、以下の記事をご覧下さい。

【Python】インスタユーザの情報取得|プロフィール・フォロー・フォロワー数・メディア

Pythonを活用してInstagram Graph APIを呼び出し、インスタユーザーの情報を取得する方法を解説します。

ig_usernameに情報取得したいインスタユーザー名を記入し、以下のコードを実行してみましょう。

コード

def get_user_media_stats(params, ig_user_name):
    """
    ***********************************************************************************
    【APIのエンドポイント】
    "https://graph.facebook.com/v14.0/17841405309211844?fields=business_discovery.username('ig_username'){followers_count,media_count}&access_token={access-token}"
    ***********************************************************************************
    """
    
    # エンドポイントに送付するパラメータ
    Params = dict()
    Params['user_id']      = params['instagram_account_id']
    Params['access_token'] = params['access_token']
    Params['fields']       = 'business_discovery.username(' + ig_username + '){followers_count,media_count,media{comments_count,like_count}}'
    # エンドポイントURL
    url = params['endpoint_base'] + Params['user_id']
    # 出力
    return InstaApiCall(url, Params, 'GET')



# 【要修正】インスタグラムユーザー名を指定!
ig_username = 'nintendo_jp'

# リクエストパラメータ
params      = basic_info()                                # リクエストパラメータ
response    = get_user_media_stats(params, ig_username)   # レスポンス

# 出力
pprint(response)

出力イメージ

# {'business_discovery': {'biography': '任天堂の公式アカウントです。 #Nintendo #任天堂 '
#                                      '#NintendoSwitch #ニンテンドー3DS',
#                         'followers_count': 288352,
#                         'follows_count': 2,
#                         'id': '17841404310439941',
#                         'media_count': 502,
#                         'name': '任天堂',
#                         'profile_picture_url': 'https://scontent-lax3-1.xx.fbcdn.net/v/t51.2885-15/15875758_1403356446342699_1359251613247602688_n.jpg?_nc_cat=1&ccb=1-7&_nc_sid=86c713&_nc_ohc=pHBOwj9IRegAX970G1Q&_nc_ht=scontent-lax3-1.xx&edm=AL-3X8kEAAAA&oh=00_AT-yJIhmJNvUYRCtknrIoJXUtWOknIgE2TZ1jUs5lE_0fg&oe=62D792FB',
#                         'website': 'https://www.nintendo.co.jp/'},
#  'id': '17841406871485392'}

指定したインスタユーザーのプロフィール基本情報、フォロー数・フォロワー数、投稿メディア数等が出力されます。

【Python】Instagramユーザのメディア情報・Like・コメント数を取得

Instagramユーザーが投稿したメディア(写真・動画)情報を一括取得し、それぞれのコメント数・Like数も合わせて取得する方法を解説します。

ig_usernameに情報取得したいインスタユーザー名を記入し、以下のコードを実行してみましょう。

コード

def get_user_media_stats(params, ig_user_name):
    """
    ***********************************************************************************
    【APIのエンドポイント】
    "https://graph.facebook.com/v14.0/17841405309211844?fields=business_discovery.username('ig_username'){followers_count,media_count}&access_token={access-token}"
    ***********************************************************************************
    """
    # エンドポイントに送付するパラメータ
    Params = dict()
    Params['user_id']      = params['instagram_account_id']
    Params['access_token'] = params['access_token']
    Params['fields']       = 'business_discovery.username(' + ig_username + '){followers_count,media_count,media{comments_count,like_count}}'
    # エンドポイントURL
    url = params['endpoint_base'] + Params['user_id']
    # 出力
    return InstaApiCall(url, Params, 'GET')


# 【要修正】インスタグラムユーザー名を指定!
ig_username = 'nintendo_jp'

# リクエストパラメータ
params      = basic_info()                                # リクエストパラメータ
response    = get_user_media_stats(params, ig_username)   # レスポンス

# 出力
pprint(response['json_data'])

出力イメージ

# {'business_discovery': {'followers_count': 288352,
#                         'id': '123456',
#                         'media': {'data': [{'comments_count': 4,
#                                             'id': '18173060527235295',
#                                             'like_count': 2627},
#                                            {'comments_count': 19,
#                                             'id': '17938438544033640',
#                                             'like_count': 5895},
#                                            {'comments_count': 57,
#                                             'id': '17949964198849991',
#                                             'like_count': 17161},
#                                            {'comments_count': 25,
#                                             'id': '17916019757430263',
#                                             'like_count': 6304},
#                                            {'comments_count': 35,
#                                             'id': '17973269461546371',
#                                             'like_count': 16254},
#                                            {'comments_count': 14,
#                                             'id': '17859331154725873',
#                                             'like_count': 3597},
#                                            {'comments_count': 10,
#                                             'id': '18121544014276641',
#                                             'like_count': 3426},
#                                            {'comments_count': 47,
#                                             'id': '17861778098711819',
#                                             'like_count': 7787}],
#                         'media_count': 502},
#  'id': '123456'}

指定したインスタユーザーのメディアID・コメント数・Like数の一覧情報が出力されます。

【参考】インスタグラム・その他SNSの運用効率化

当サイトではSNS運用を効率化するための方法を多数解説しています。

Instagram Graph APIを活用したインスタ運用の自動化

カテゴリ記事名
API利用手順Instagram Graph APIの使い方・認証手順・できること
API利用手順Instagram Graph APIの動作チェック
API利用手順有効期限を長期化したアクセストークン取得
インスタ運用効率化Instagramユーザー情報取得
インスタ運用効率化Instagramに投稿したメディア情報取得
インスタ運用効率化Instagramハッシュタグの検索結果取得
インスタ運用効率化Instagramに写真や動画をアップロード
インスタ運用効率化Instagramメディア・ユーザーインサイト取得

インスタグラム自動運用ツールでインスタ運用を効率化

Python言語で構築することに障壁がある方向けに、ノーコードかつ手軽にインスタグラム運用・管理ができるようになるツールを紹介します。Pythonで実装したインスタ機能と上記システム機能を比較し、お好みの方法を選択できると良いですね。

Twitter運用の効率化

最後に

この記事が気に入ったら
フォローしてね!

目次