web-dev-qa-db-ja.com

基本認証のユーザー名とパスワードの代わりにキーを使用してPythonでRESTful APIに接続するにはどうすればよいですか?

私はプログラミングの初心者で、現在のPythonコードを使用してVer 1 RESTful APIに接続するために使用するコードを変更する必要があるプロジェクトを引き継ぐように求められました。会社はVer 1に切り替えました。 APIの2つで、基本的なユーザー名とパスワードではなく、認証にIDとキーが必要になりました。Ver1 APIで機能していた古いコードは次のようになります。

import requests
import simplejson as json
import pprintpp as pprint

#API_Ver1 Auth
USER = 'username'
PASS = 'password'
url = 'https://somecompany.com/api/v1/groups'
s = requests.Session()
s.auth = (USER, PASS)

r = json.loads(s.get(url).text)
groups = r["data"]

次のようなcURL文字列を使用して、ターミナルからVer 2 APIに接続できます。

curl -v -X GET -H "X-ABC-API-ID:xxxxx" -H "X-ABC-API-KEY:nnnnnnnnnnnnnnnnnnnnnnn" -H "X-DE-API-ID:x" -H "X- DE-API-KEY:nnnnnnnnnnnnnnnnnnnnnnnn "" https://www.somecompany.com/api/v2/groups/ "

私は検索しましたが、cURL文字列からIDとキーを取得して、Pythonを使用したVer 2 APIへのアクセスを許可する方法を見つけることに失敗しました。 noobがこのコード変更を完了するのを支援する上での検討に感謝します!

12
wautry

リクエストにHTTPヘッダーを追加できます

headers = {
    'X-ABC-API-ID': 'x-x-x-x-x',
    'X-ABC-API-KEY': 'nnnnnnnnnnnnnnnnnnnnnnn',
    'X-DE-API-ID': 'x',
    'X-DE-API-KEY': 'nnnnnnnnnnnnnnnnnnnnnnnn'
}
r = requests.get('https://www.somecompany.com/api/v2/groups/', headers=headers)
14
r-m-n