結論
1. os.getenv('KEY')
はOSに指定された環境変数がセットされていないとNoneを返す
os.getenv(key, default=None)
の形式のため、第2引数の default
に何かセットされている場合は除く。
2. Qiita APIはリクエストヘッダーが空 {}
でもリクエストを受け付ける
ということは、始めに 空のdictをリクエストヘッダーとして使い、
- 環境変数にアクセストークン(認証情報)がセットされていなければ: そのまま未認証で
- セットされていれば:
Authorization
キーをdictにセットして認証済で
APIを使うことができる。
リクエストのコード例
ユーザー情報を取得する GET /api/v2/users/:user_id を使ってみます。
アクセストークン の指定方法は Bearer
の後に続けば良いため 文字列を結合するだけでOKです。
import requests
import os
# tokenの読み込み
qiita_token = os.getenv('QIITA_TOKEN')
qiita_request_header = {}
if qiita_token:
print("環境変数の QIITA_TOKEN で認証します")
qiita_request_header = {'Authorization': 'Bearer ' + qiita_token}
api_url = 'https://qiita.com/api/v2/users/ysd_marrrr'
result = requests.get(api_url, headers=qiita_request_header)
# ヘッダー
print(result.headers)
# レート
print('残り {} 回 / {}'.format(result.headers['rate-remaining'], result.headers['rate-limit']))
# ボディ
print(result.text)
認証情報のセットの仕方
Qiitaの [設定] -> [アプリケーション] -> [個人用アクセストークン] の「新しくトークンを発行する」から認証情報を取得してください。
#この例だと read_qiita
のスコープのみで十分です。
bash
export QIITA_TOKEN="tokentokentoken"
Python
import os
os.environ.set('QIITA_TOKEN', 'tokentokentoken')