私は Python/Django を初めて使用しますが、ある Web サイト (siteA.com) 用に REST API をセットアップしており、別の Web サイト (siteB.com) でこの API を呼び出して結果を表示できるようにしたいと考えています。このために、Django REST Framework と Django Auth2 Provider を siteA に追加しました。curl を使用して API を呼び出し、アクセス トークンを取得できるようになりました。
curl -X POST -d "client_id=CLIENT_ID&client_secret=CLIENT_SECRET&grant_type=password&username=USERNAME&password=PASSWORD" http://www.siteA.com/oauth2/access_token [1]
これにより、私が望む応答が得られます。
{"access_token": "72x63615xe29f4xfdadexbcd77x27b5fx0bceexx", "scope": "read", "expires_in": 86399, "refresh_token": "5fx80dx320cx3abe7d0x27d5f1x64e7x413x0f70"}
取得したアクセス トークンを使用して、API を呼び出すことができます。
curl -v -H "Authorization: Bearer 72x63615xe29f4xfdadexbcd77x27b5fx0bceexx" "http://www.siteA.com/api/?q=SOMESTRING&per_page=3&page=1&sort=random" [2]
これにより、クエリ文字列「SOMESTRING」の 3 つの結果を含む JSON 応答が得られます。
これで問題なく動作しますが、今度は、siteB.com 内からこれらの呼び出しを行いたいと考えています。つまり、ある検索クエリで呼ばれると[1]のようにまずアクセストークンがあるかチェックし、[2]のように検索結果を取得してJSON形式で表示するページを作りたい。私はそれを行う方法がわかりません。requests_oauth2 から OAuth2 を使用しようとしましたが、curl ステートメントを Python に変換する正しい方法がわかりません。何か助けはありますか?