請問我如何將這個curl請求轉換為axios的等價物?
curl -X POST https://api.pinterest.com/v5/oauth/token --header "Authorization: Basic {base64 encoded string made of client_id:client_secret}" --header 'Content-Type: application/x-www-form-urlencoded' --data-urlencode 'grant_type=authorization_code' --data-urlencode 'code={YOUR_CODE}' --data-urlencode 'redirect_urihttp://localhost/'
我已經花了幾個小時來處理這個問題,但我一直得到的是
{"code":1," message":"Invalid request body"}。
這是我所嘗試的:
const redirectUrl = process.env.PINTEREST_OAUTH_CALLBACK_URL;
const clientId = process.env.PINTEREST_APP_ID。
const clientSecret = process.env.PINTEREST_APP_SECRET。
let url = 'https://api.pinterest.com/v5/oauth/token';
let accessTokenRequestBody = {
code: 代碼。
grant_type: "authorization_code",
redirect_uri: redirectUrl
};
const clientIdAndSecretBase64 = Buffer. from(`${clientId}:${clientSecret}`) 。 toString('base64') 。
axios(url, {
method: 'post'。
url: url,
data: accessTokenRequestBody,
headers: {
"Content-Type": 'application/application/x-www-form-urlencoded; charset=UTF-8'。
"授權"。`Basic ${clientIdAndSecretBase64}`。
}
}).then((response) =>/span> {
let responseData = response.data;
let accessToken = module.exports.encodePayloadIntoJWT( responseData)。
console.log(`Pinterest ResponseData = ${JSON。 stringify(responseData, null, 2)}`)。)
}).catch((e) =>/span> {
console.log(`${JSON.stringify(e.response.data)}`) 。
});
我非常感謝任何幫助,因為這已經浪費了我很多時間。我現在已經落后于最后期限了......。謝謝你。
uj5u.com熱心網友回復:
你需要urlencode引數,而不是傳遞一個物件作為資料。
const params = new URLSearchParams();
params.append('redirect_uri', process.env.PINTEREST_OAUTH_CALLBACK_URL)
//對其他引數做同樣處理。
// ...
///使帖子
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/331031.html
標籤:
