解決したいこと
X Api v2 の Sample コードで、Bearer認証に関連して Python が、どんな挙動をしているのかが、分からなくて困っています。
発生している問題・エラー
該当コードは、
にある、X Api v2 のサンプルコードです。ちゃんと、動作しているので、その点では何も困っていませんが、自分で Python の挙動が理解できず、困っています。
先に定義されている関数 bearer_oauth() は、次の connect_to_endpoint() で利用されています。関数内で、requests.get() の auth パラメータで渡されています。関数オブジェクトとして、渡されていることまでは理解できた(?)と思っているのですが、bearer_oauth()側で必要なはずの 引数:r がどこにもないので、どんな挙動をしているのか、理解できていません。
レベルアップのために、きちんと理解をしたいのですが、Python で学ぶべきキーワードの提示など、簡単なヒントでもいいので、助け船をお願いいたします。
該当するソースコード
def bearer_oauth(r):
"""
Method required by bearer token authentication.
"""
r.headers["Authorization"] = f"Bearer {bearer_token}"
r.headers["User-Agent"] = "v2RecentSearchPython"
return r
def connect_to_endpoint(url, params):
response = requests.get(url, auth=bearer_oauth, params=params)
print(response.status_code)
if response.status_code != 200:
raise Exception(response.status_code, response.text)
return response.json()
自分で試したこと
・bearer_oauth() が、requests で設定できるカスタム認証のための関数だと思っています。requests のドキュメントをあたってみましたが、その場合には、AuthBase のサブクラスとして定義してくださいとありますが、ここでは単純に関数として定義されています。
・bearer_oauth() 内では、Authorization ヘッダを利用した認証が実施されて、そのレスポンスを返したいことは、理解できています。