尝试在“ perform_auth()”中获取Spotify访问令牌时出现错误400

时间:2020-10-26 15:52:20

标签: python api authentication spotify

我已经对语法进行了交叉检查,并且同样的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"}

    

要从Spotify获取访问令牌

 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

0 个答案:

没有答案