こんにちは、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
上記の具体的な取得方法についてはこちらの記事で解説しています。
Instagram Graph APIの認証・利用手順|アクセストークン・アプリ・インスタビジネスアカウントID取得
Instagram Graph APIを活用したインスタ自動運用に興味がある方向けに、API利用に至るまでの準備事項・手順を詳しく解説します。
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
部分を必要な認証情報に書き換えて利用しましょう。
endpont_baseにはgraph_domain(https://graph....com/
)と最新のバージョンvxx.0/
を指定しています。
config_dict = {
"access_token": '<アクセストークン>',
"app_id":'<アプリID>',
"app_secret":'<アプリシークレット>',
"instagram_account_id":'<インスタビジネスのアカウントID>',
"endpoint_base":'https://graph.facebook.com/v21.0/',
}
【事前準備】Instagram Graph API呼出関数を作成
続いて、インスタグラム Graph APIを呼び出す関数を作成します。
以下のコードをそのままコピー&ペーストしましょう。
import requests
import json
import datetime
from pprint import pprint
# API Request Func
def InstaApiCall(url, params, request_type):
# Request
if request_type == 'POST':
req = requests.post(url,params)
else :
req = requests.get(url,params)
# Response
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】Instagram Graph APIの動作チェック
Python環境でInstagram Graph APIを活用したい Instagram Graph APIを正常に呼出できているのか動作確認したい
【Python】インスタユーザの情報取得|プロフィール・フォロー・フォロワー数・メディア
Pythonを活用してInstagram Graph APIを呼び出し、インスタユーザーの情報を取得する方法を解説します。
ig_username
に情報取得したいインスタユーザー名を記入し、以下のコードを実行してみましょう。
コード
def get_user_media_stats(params, ig_user_name):
# エンドポイントに送付するパラメータ
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'
# リクエストパラメータ
response = get_user_media_stats(config_dict, 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'
# リクエストパラメータ
response = get_user_media_stats(config_dict, 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メディア・ユーザーインサイト取得 |
インスタグラム運用代行サービス
「面倒なSNS運用を全て代行してほしい」「質のいいフォロワーを獲得したい」「SNS経由での収益導線を強化したい」という方向けにこちらのサービスもおすすめします。
Twitter運用の効率化
Twitter運用を自動化する方法
- Twitter検索結果に基づくデータ収集・分析
- 定期的に自動ツイートする方法
- 自動でファボ(いいね)やリツイートする方法
- 自動でフォロー・ブロック・ミュートする方法
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら