[python] Bearer 토큰이 필요한 API를 사용하여 Python에서 API 호출하기

JSON API 호출을 Python 프로그램에 통합하는 데 도움이 필요합니다.

다음 API를 Python .py 프로그램에 통합하여 호출하고 응답을 인쇄 할 수 있도록하려고합니다.

API 지침에는 API 호출을 허용하려면 베어러 토큰을 생성해야한다고 명시되어 있습니다. 그러나이 토큰을 Python API 요청에 전달자 토큰 인증으로 포함하는 구문이 확실하지 않습니다.

토큰이 포함 된 cURL을 사용하여 위의 요청을 성공적으로 완료 할 수 있습니다. “urllib”및 “요청”경로를 시도했지만 아무 소용이 없습니다.

전체 API 세부 사항 : IBM X-Force Exchange API 문서-IP 평판



답변

헤더 데이터의 키로

import requests
endpoint = ".../api/ip"
data = {"ip": "1.1.2.3"}
headers = {"Authorization": "Bearer MYREALLYLONGTOKENIGOT"}

print(requests.post(endpoint, data=data, headers=headers).json())


답변

requests모듈 을 사용 하는 경우 대체 옵션은 ” 새 인증 양식 “에 설명 된대로 인증 클래스를 작성하는 것입니다 .

import requests

class BearerAuth(requests.auth.AuthBase):
    def __init__(self, token):
        self.token = token
    def __call__(self, r):
        r.headers["authorization"] = "Bearer " + self.token
        return r

다음과 같은 요청을 보낼 수 있습니까?

response = requests.get('https://www.example.com/', auth=BearerAuth('3pVzwec1Gs1m'))

auth기본 인증과 동일한 인수 를 사용할 수 있으며 특정 상황에서 도움이 될 수 있습니다.


답변

토큰은 다음 형식에 따라 Authorization 헤더에 배치되어야합니다.

승인 : Bearer [Token_Value]

아래 코드 :

import urllib2
import json

def get_auth_token()
    '''
    get an auth token
    '''
     req=urllib2.Request("https://xforce-api.mybluemix.net/auth/anonymousToken")
     response=urllib2.urlopen(req)
     html=response.read()
     json_obj=json.loads(html)
     token_string=json_obj["token"].encode("ascii","ignore")
     return token_string

def get_response_json_object(url, auth_token)
    '''
      returns json object with info
    '''
    auth_token=get_auth_token()
    req=urllib2.Request(url, None, {"Authorization": "Bearer %s" %auth_token})
    response=urllib2.urlopen(req)
    html=response.read()
    json_obj=json.loads(html)
    return json_obj


답변