我尝试了很多,这是我的 python 代码,用于使用手动生成的 access_token 并防止其过期(因为其生命周期仅为 4 小时),因此它将使用刷新令牌来重新获取新的访问令牌,但是,它不断向我显示此错误:
Error: 400 - {"error": "invalid_grant", "error_description": "code doesn't exist or has expired"}
我的完整代码是:
import base64
import requests
app_key = '<APP KEY>'
app_secret = '<APP SECRET HERE>'
redirect_uri = 'http://localhost/callback'
access_code = 'ACCESS CODE GOES HERE'
def get_access_token(app_key, app_secret, access_code, redirect_uri):
# Create headers
headers = {
'Authorization': 'Basic ' + base64.b64encode(f"{app_key}:{app_secret}".encode()).decode(),
'Content-Type': 'application/x-www-form-urlencoded'
}
# Create data for the POST request
data = {
'code': access_code,
'grant_type': 'authorization_code',
'redirect_uri': redirect_uri
}
# Make the POST request to get an access token
response = requests.post('https://api.dropboxapi.com/oauth2/token', headers=headers, data=data)
print(response.status_code)
if response.status_code == 200:
response_data = response.json()
access_token = response_data.get('access_token')
refresh_token = response_data.get('refresh_token')
if access_token:
print("Access Token:", access_token)
if refresh_token:
print("Refresh Token:", refresh_token)
else:
print("No access token found in response.")
else:
print(f"Error: {response.status_code} - {response.text}")
get_access_token(app_key, app_secret, access_code, redirect_uri)
我多次尝试手动生成新的访问令牌并使用它,但响应永远不会改变