\

PythonでOAuth2なAPIを利用する際に、urllibとoauthlibを使った具体的な方法を説明します。今回は例としてNetatmo APIについて記述しますが、OAuth2に対応したAPIであればやり方はほとんど変わらないはずです。

まずは、必要なライブラリをインストールします。

$ pip install oauthlib

次に、認証のために必要な情報を入手します。

NETATMO_API_CLIENT_ID = 'xxxxxxxxxxxxxxxx'
NETATMO_API_CLIENT_SECRET = 'xxxxxxxxxxxxxxxx'
NETATMO_API_SCOPE = ['read_station']
NETATMO_API_REDIRECT_URL = 'http://localhost/callback'

これで認証が完了しました。次に、Access Tokenを使ってAPIにアクセスします。

GET /getmeasure にアクセスしてみる。
columns = ['temperature', 'co2', 'humidity', 'pressure', 'noise']
params = {
    'date_begin': 1577836800, # 2020-01-01 00:00:00 UTC
    'device_id': 'xx:xx:xx:xx:xx:xx',
    'scale': '30min',
    'type': ','.join(columns),
    'optimize': 'false',
}
url = 'https://api.netatmo.com/api/getmeasure?' + urllib.parse.urlencode(params)
url, headers, body = oauth.add_token(url)
req = urllib.request.Request(url, headers=headers)
with urllib.request.urlopen(req) as res:
    data = json.load(res)

以上の手順で、PythonでOAuth2とurllibを使ってAPIにアクセスすることができます。この記事が皆さんの参考になれば幸いです。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です