instagram基本表示APIの使い方①アクセストークンを発行する

API

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

instagram基本表示APIを使ってみたいです。
まずは初歩的な使い方について教えてください。

この記事ではinstagram基本表示APIを使う上で必須なアクセストークンの発行をプログラムで実行する方法について説明します。

なおプログラムはPythonを使って記述します。


アクセストークンとは認証情報のこと

最初にアクセストークンについて簡単に説明しておきます。

アクセストークンとは簡単に言うとAPIの機能を使うにあたって使用する認証情報のことです。

どこの誰がAPIへリクエストをしているのか、ということを識別するために使用されます。

逆に言うとこの認証情報がないとAPIの機能が使えない場合があり、instagramにおいてはプロフィール情報などを取得するためにアクセストークンが必要です。

アクセストークンの発行の流れ

アクセストークンの発行の流れについてみておきましょう。

  1. Meta for Developerでの開発者登録およびinstagram基本表示APIの設定を完了しておく
  2. アクセストークンを発行するために必要なコードを払い出す
  3. 認証コードを使ってアクセストークンを発行する

1の開発者登録や設定などの詳細についてはこちらの記事をご覧ください。

【2022年最新】instagram基本表示APIの申請方法について図解!
instagram基本表示APIを使うにあたってFacebook(Meta)の開発者登録やアプリの登録など長く複雑な手順を進めていく必要があります。この記事ではその手順について画像を使って分かりやすく説明します!なおこの記事のゴールはAccess Tokenを発行するまでとしています。

この記事では2と3のコードの払い出し、アクセストークンの発行を基本表示APIの機能を使って実施します。

instagram基本表示API用のライブラリをインストールする

まずはPythonでinstagram基本表示APIを扱うためのライブラリをインストールしましょう。

ライブラリのインストールはpipコマンドを使います。

  • windowsの場合:コマンドプロンプト(cmd)を起動
  • macの場合:ターミナルを起動

起動したら下記コマンドを実行しましょう。

pip install instagram-basic-display

インストールができたら準備は完了です。

アクセストークン発行のサンプルプログラム

下にアクセストークン発行のためのサンプルプログラムを貼っておきます。

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)

print()
print("区分を入力してください")
print("1:認証コード発行")
print("2:アクセストークン発行")

kbn = int(input())

if(kbn == 1):
    get_authorize_code()
elif(kbn == 2):
    authorize_code = input("認証コードを入力してください:")
    get_access_token(authorize_code)

プログラムの内容について説明します。

まずはinstagram基本表示APIにアクセスするための接続用オブジェクトを「instagram_basic_display」として作成し、必要な情報であるアプリIDやリダイレクトURLを入力します。

アプリIDなどの詳細についてはこちらの記事をご覧ください。

そして作成した接続用オブジェクトを使って認証コード、アクセストークンを発行します。

認証コードの発行は「get_authorize_code」という関数で作成しました。

なお、認証コードの発行には

get_login_url()

メソッドを使います。引数であるパラメータは不要です。

そしてアクセストークンを発行する関数を「get_access_token」として作成しています。

アクセストークンの発行は

get_o_auth_token()

メソッドを使用します。引数のパラメータとして発行した認証コードを使います。

プログラムの起動後、区分を1と2で実行する関数を選択できるようにしました。

なので素直に1を実行して認証コードの払い出し、そして2を実行してアクセストークンを発行しましょう。

サンプルプログラムを使ったアクセストークン発行の流れ

まずはプログラムを実行して1を入力して[Enter]キーを押下しましょう。

するとこのようなリンクの文字列が表示されると思います。

そうしたら表示されたリンク文字列をコピーしてブラウザに貼り付けて表示させましょう。

するとinstagramの認証画面が表示されるので[許可する]をクリックします。

するとリダイレクトURLで設定しているURLのページに遷移します。

URLの部分に注目してみましょう。

URLの後ろに「?code=」で文字列が付いていると思います。

この文字列がアクセストークン発行に必要な認証コードです。

次のステップでこの認証コードを使うのでコピーしておきます。

再びプログラムを実行して今度は「2」を入力して[Enter]キーを押下しましょう。

認証コードの入力を求めますので、先ほどコピーした認証コードを貼り付けて[Enter]キーを押下します。

すると入力した認証コードの下に{‘access_token’:’文字列’, ‘user_id’:’文字列’}という形式の文字列が返ってきます。

このaccess_tokenの後ろにあるシングルコーテーション(’)で囲われた文字列がアクセストークンです。

このアクセストークンを使うことでinstagramのプロフィール情報などを取得することができます。

【注意】
instagramのアクセストークンは有効期限が設定されており、通常発行してから1時間以内しか使えません。救済措置として有効期限を60日まで延長する方法があるようです。詳しくはこちら

まとめ

この記事ではinstagram基本表示APIを使ってアクセストークンを発行するPythonプログラムについて説明しました。

改めて今回の内容の振り返ります。

  • アクセストークンとはAPIを実行するために必要となる認証情報
  • instagramの場合、アクセストークンを発行するための認証コードが必要
  • 認証コードの発行には「get_login_url()」メソッドを使う
  • アクセストークンの発行には「get_o_auth_token()」メソッドを使う
  • instagramのアクセストークンの有効期限は通常発行してから1時間

このAPIの使い方は基本中の基本になるため、きちんと抑えておきましょう。


コメント

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