【Python】Instagram Graph APIの動作チェック|インスタアクセストークンのデバッグ方法

当ページには広告が含まれています。

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

こんな方におすすめ!
  • Python環境でInstagram Graph APIを活用したい
  • Instagram Graph APIを正常に呼出できているのか動作確認したい
目次

【Python】Instagram Graph APIの動作チェック

本記事ではPython環境でInstagram Graph API機能を活用したい方向けに、API呼出が正常にできているか確認するための方法を解説します。

Instagram Graph APIの利用には次のような事前対応が必要です。

InstagramとFacebookの環境設定

  • Instagramプロアカウントの開設
  • Meta Business Suiteにアカウントを登録
  • FacebookとInstagramをリンク

Meta for DevelopersでAPI認証情報を取得

  • Meta for Developersに開発者として登録
  • アクセストークン
  • アプリID&アプリシークレット
  • インスタグラムビジネスアカウントID

API利用に際して、上記の対応が未済の方は、以下の記事を参考にご対応ください。

Pythonモジュールのインストール

本記事での動作チェックでは、以下のPythonモジュールを活用します。インストールが未済の方は、ターミナルやコマンドプロンプトをもとに以下を実行しておきましょう。

requests

pip install requests

pprint

pip install pprint

【事前準備】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呼出関数の動作チェック

前述の認証用関数とAPI呼出関数を用いて、以下のデバッグ関数を実行しましょう。

コード

def debugAT(params):
    # エンドポイントに送付するパラメータ
    Params = dict()
    Params["input_token"]  = params["access_token"]
    Params["access_token"] = params["access_token"]
    # エンドポイントURL
    url = params["endpoint_base"] + "/debug_token"
    # 戻り値
    return InstaApiCall(url, Params, 'GET')

# リクエスト
response = debugAT(config_dict)

# レスポンス
print(response)

出力イメージ

# {'endpoint_params': {'access_token': 'XXXXX',
#                      'input_token': 'XXXXXX'},
#  'endpoint_params_pretty': '{\n'
#                            '    "input_token": '
#                            '"XXXXX",\n'
#                            '    "access_token": '
#                            '"XXXXX"\n'
#                            '}',
#  'json_data': {'data': {'app_id': '1234567',
#                         'application': 'App',
#                         'data_access_expires_at': 12345678,
#                         'expires_at': 0,
#                         'granular_scopes': [{'scope': 'pages_show_list',
#                                              'target_ids': ['12345']},
#                                             {'scope': 'pages_read_engagement',
#                                              'target_ids': ['12345']}],
#                         'is_valid': True,
#                         'issued_at': 1234567,
#                         'scopes': ['pages_show_list',
#                                    'ads_management',
#                                    'business_management',
#                                    'instagram_basic',
#                                    'instagram_manage_comments',
#                                    'instagram_manage_insights',
#                                    'instagram_content_publish',
#                                    'instagram_manage_messages',
#                                    'pages_read_engagement',
#                                    'public_profile'],
#                         'type': 'USER',
#                         'user_id': '1234567'}},
#  'url': 'https://graph.facebook.com//debug_token'}

上記のように、レスポンスにエラーが出力されなければ正常にAPIが呼び出しできています。

【参考】Instagram Graph APIが正常に呼び出せない理由

前述のコード実行後にエラーが発現した場合、以下の理由でInstagram Graph APIが呼び出せていない可能性があります。

  • FacebookとInstagramがリンクしていない
  • アクセストークン発行時にInstagram利用の権限が正しく付与されていない
  • App ID・Appシークレットが間違っている
  • インスタグラムビジネスアカウントIDが間違っている
  • APIのバージョンが間違っている

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

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

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

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

インスタグラム運用代行サービス

「面倒なSNS運用を全て代行してほしい」「質のいいフォロワーを獲得したい」「SNS経由での収益導線を強化したい」という方向けにこちらのサービスもおすすめします。

Twitter運用の効率化

最後に

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

本記事をシェア!
目次