簡體   English   中英

Javascript REST API - 您必須指定 API 密鑰才能發出請求

[英]Javascript REST API - You must specify an API key to make request

嘗試從 3rd 方 API ( Klaviyo ) 獲取數據時,我收到 403“您必須指定 API 密鑰才能發出請求”。

const { id } = req.body

request.get({
    url: `https://a.klaviyo.com/api/v1/person/${id}`,
    headers: {
        api_key: process.env.KLAVIYO_API_KEY
    }
}, (error, response, body) => {
    const profile = JSON.parse(body)
    console.log(profile)
    if (response.statusCode === 200) {
        res.json({ profile, status: 201 })
    } else {
        res.json({ error: 'Did not get customer data', status: 500, response: response, err: error })
    }
})

我也試過:

標頭:{“授權”:[API_KEY]}

數據:{api_key:[API_KEY]}

解決方法:

const { id } = req.body

request.get({
    url: `https://a.klaviyo.com/api/v1/person/${id}`,
    qs: {
        api_key: process.env.KLAVIYO_API_KEY
    }
}, (error, response, body) => {
    const profile = JSON.parse(body)
    console.log(profile)
    if (response.statusCode === 200) {
        res.json({ profile, status: 201 })
    } else {
        res.json({ error: 'Did not get customer data', status: 500, response: response, err: error })
    }
})

簡短回答:將它添加到 params.api_key 下(作為 GET 請求的一部分)。

klaviyo 文檔
“您通過在每個請求中提供一個私有 API 密鑰來對 People API 進行身份驗證。(...)身份驗證通過每個請求中的 api_key 參數進行。它可以作為 GET 或 POST 參數的一部分發送。”

我認為您正在使用帶有 POST 標頭方法的 GET 請求。 在 GET 中,您需要將其放入 URL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM