我已经对语法进行了交叉检查,并且同样的perform_auth()
在Jupyter Notebook上的运行情况200
完美运行
client_id = os.environ.get('CLIENT_ID')
client_secret = os.environ.get('CLIENT_SECRET')
class SpotifyAPI(object):
access_token = None
access_token_expires= datetime.datetime.now()
client_id = None
client_secret = None
access_token_did_expire = True
token_url = "https://accounts.spotify.com/api/token"
def __init__(self, client_id, client_secret, *args, **kwargs):
super().__init__(*args, **kwargs)
self.client_id = client_id
self.client_secret = client_secret
# To encode client ID and client secret to base 64
def get_client_credentials(self):
self.client_id = client_id
self.client_secret = client_secret
client_creds = f'{client_id}:{client_secret}'
client_creds_1 = client_creds.encode("ascii")
base64_bytes = base64.b64encode(client_creds_1)
base64_string = base64_bytes.decode("ascii")
return base64_string
#To get basic header for requests call
def get_token_headers(self):
base_64_string = self.get_client_credentials()
base_64 = {"Authorization":f"Basic {base_64_string}"}
return base_64
def get_token_data(self):
return {"grant_type":"client_credentials"}
def perform_auth(self):
token_url = self.token_url
token_data = self.get_token_data()
token_headers = self.get_token_headers()
r = requests.post(token_url , data=token_data, headers=
token_headers)
print (r.status_code)
if r.status_code not in range (200,299):
return r.status_code