[Django]InstagramのAPIを使用しPythonで情報を取得する
はじめに
pythonでInstagramのAPIを使ってユーザー情報を取得しました。現在公開されている情報が少ないと感じたので備忘録として残しておきます。
アクセストークンを利用するための認証コードの取得からアクセストークンの取得とユーザーの情報の取得までを行います。
前提としてfacebook for developersでアプリの設定を終えている状態とします。
また今回はInstagram Basic Displayを使います。設定の詳しいやり方は以下を参照してください
環境
Django 3.1
Python 3.9.2
facebook for developers設定済
Instagram Basic Display設定済
認証コードの取得
まずpip install
でinstagram-basic-display
をインポートします
$ pip3 install instagram-basic-display
$ python manage.py shell
>>> from instagram_basic_display.InstagramBasicDisplay import InstagramBasicDisplay
>>> instagram_basic_display = InstagramBasicDisplay(app_id ='InstagramアプリID', app_secret='Instagram App Secret',redirect_url='設定したリダイレクトURL')
# redirect_urlはhttpで設定できないのでhttpsにすること
>>> print(instagram_basic_display.get_login_url())
https://api.instagram.com/oauth/authorize?client_id=11111111111111&redirect_uri=https://hogehoge.com%2F&scope=user_profile%2Cuser_media&response_type=code
# printしたURLをクリック
URLをクリックすると以下の画面に飛ぶのでAllow
をクリックしてください
成功すると、前のステップで指定したリダイレクトURLにリダイレクトされ、URLに認証コードが付加されます。
https://hogehoge.com?code=NOFDNAON3DKMFDMDOKFDMOLFKMDFK
# ↑code=から右の部分が認証コードになる(1時間だけ有効)
こちらの取得した認証コードをコピーしてください
アクセストークンを取得
先ほど取得した認証コードを使ってアクセストークンを取得します
>>> auth_token = instagram_basic_display.get_o_auth_token('取得した認証コード')
>>> auth_token
{'access_token': 'アクセストークン', 'user_id': 'ユーザーID'}
ユーザー情報の取得
アクセストークンを利用しユーザー情報も取得していきます
>>> instagram_basic_display.set_access_token('取得したアクセストークン')
>>> profile = instagram_basic_display.get_user_profile()
>>> profile
{'account_type': 'PERSONAL', 'id': '1111111111111', 'media_count': 1, 'username': 'hogehoge'}
これでユーザー情報を取得することができます。
参考
Author And Source
この問題について([Django]InstagramのAPIを使用しPythonで情報を取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/Jackson123/items/fe647f20a3487c13de0d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .