Xero 凭证刷新发生在邮递员后台,但不是通过请求

问题描述 投票:0回答:1

我有一个问题,当我单击刷新过期的 Oauth 不记名令牌时,它在邮递员后台传递的标头是什么?我需要将其复制到 Python 请求函数

此功能对于 Xero 不起作用

import requests

token_endpoint = "https://identity.xero.com/connect/token"
client_id = "YourClientID"
refresh_token = "YourRefreshToken"

payload = {
    "grant_type": "refresh_token",
    "client_id": client_id,
    "refresh_token": refresh_token
}

response = requests.post(token_endpoint, data=payload)

if response.status_code == 200:
    token_data = response.json()
    new_access_token = token_data.get("access_token")
    new_refresh_token = token_data.get("refresh_token")
    print("Access token refreshed successfully:", new_access_token)
    print("New refresh token:", new_refresh_token)
else:
    print("Failed to refresh access token. Status code:",response.status_code)`

有人可以帮忙吗?

它返回 400 Bad Request, 我需要状态 200,文档链接:https://developer.xero.com/documentation/guides/oauth2/pkce-flow/#refreshing-access-and-refresh-tokens

oauth postman refresh refresh-token xero
1个回答
0
投票

标头应为 application/x-www-form-urlencoded:

的 Content-Type
url = 'https://identity.xero.com/connect/token'
        
headers={
   'Content-Type': 'application/x-www-form-urlencoded'
}
        
payload={
   'grant_type': 'refresh_token',
   'client_id' : client_id,
   'refresh_token' : refresh_token
}
     
        
r = requests.post(url,headers=headers,json=payload)
© www.soinside.com 2019 - 2024. All rights reserved.