皮特斯特API:无法获取访问令牌-卡在Oauth流中

krugob8w  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(153)

使用pinterest api的v5并在身份验证流程上卡住:https://developers.pinterest.com/docs/getting-started/authentication/
已完成第一步并获得访问代码。但是,当我尝试使用此代码获取访问令牌时,出现以下错误。
{"code":1,"message":"Missing request body"}
下面是我的代码:

client_id= 'my_client_id'
client_secret = 'my_client_secret'

data_string = f'{client_id}:{client_secret}'

token = base64.b64encode(data_string.encode())

headers = {
    'Authorization': 'Basic ' + token.decode('utf-8'),
    'Content-Type': 'application/x-www-form-urlencoded',
}

url = "https://api.pinterest.com/v5/oauth/token"
code = "my_code_that_i_got_in_the_first_step"

params = {
    'grant_type':'authorization_code',
    'code': code,
    'redirect_url':'https://my_redirect_uri'
}
r = requests.post(url, headers=headers, params=params)
print(r.json())
dbf7pr2w

dbf7pr2w1#

以下是获取访问令牌的正确方法:

client_id= 'my_client_id'
client_secret = 'my_client_secret'

data_string = f'{client_id}:{client_secret}'

token = base64.b64encode(data_string.encode())

headers = {
    'Authorization': 'Basic ' + token.decode('utf-8'),
    'Content-Type': 'application/x-www-form-urlencoded',
}

url = "https://api.pinterest.com/v5/oauth/token"
code = "my_code_that_i_got_in_the_first_step"

data= {
    'grant_type':'authorization_code',
    'code': code,
    'redirect_uri':'https://my_redirect_uri'
}
r = requests.post(url, headers=headers, data=data)
print(r.json())

在我的问题中,我把redirect_uri错误地输入为redirect_url。另外,当发送POST时,你应该使用data而不是params。请参见Amos Baker的评论。

相关问题