【Python】インスタアクセストークンの有効期限を長期化する方法|Instagram Graph APIで運用自動化

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

こんな方におすすめ
  • Python環境でInstagram Graph APIを活用する方法が知りたい
  • Instagram Graph APIで使用するアクセストークンの有効期限を長期化する方法を知りたい
目次

【Instagram Graph API】Pythonでアクセストークンの有効期限を長期化

本記事ではPython環境でInstagram Graph APIを呼び出し、有効期限を長期化したアクセストークンを取得する方法について解説します。

※後述のコードではMeta for developersサイトで取得できるInstagram Graph APIの認証情報を利用します。

情報取得が未済の方は、まず以下の記事から取得方法を確認下さい。

また、Meta for Developersで利用可能なアクセストークンの概要について詳しく知りたい方はこちらの記事をご参考ください。(本記事ではユーザートークンについて言及します)

【事前準備】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環境でInstagram Graph APIのアクセストークンの有効期限を延長したい場合、以下のコードを実行します。

def LongLivedAccessToken(params) :
    # エンドポイントに渡すパラメータ
    Params = dict() 
    Params['grant_type']        = 'fb_exchange_token'    # トークン変更要件
    Params['client_id']         = params['app_id']       # Meta Developersで作成したアプリID
    Params['client_secret']     = params['app_secret']   # Meta Developersで作成したアプリシークレット
    Params['fb_exchange_token'] = params['access_token'] # 現在のアクセストークン
    # エンドポイントパラメータ
    url = params['endpoint_base'] + 'oauth/access_token?' # endpoint url
    # API呼出
    return InstaApiCall(url, Params, 'GET')

# API呼出
params   = basic_info()  
response = LongLivedAccessToken(params)

print ("\n----アクセストークン----\n")
print ("アクセストークン情報:\n>>> " + response['json_data']['access_token'])

上記のコードを実行すると、有効期限が長期化されたアクセストークンが出力されます。

お手元にメモを残し、以後こちらのトークンを活用するようにしましょう。

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

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

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

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

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

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

Twitter運用の効率化

最後に

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

本記事をシェア!
目次