簡體   English   中英

將授權標頭添加到GET請求

[英]Adding Authorization header to GET request

我正在使用新的SDK 2.0構建alexa技能,但現在無法實現簡單的http get請求。 如何將授權標頭添加到getRemoteData url請求中? 下面的代碼不起作用。

我正在嘗試調用Airtable API以獲取一些遠程數據

const UserReplyIntent_Handler =  {
canHandle(handlerInput) {
    const request = handlerInput.requestEnvelope.request;
    return request.type === 'IntentRequest' && request.intent.name === 'UserReplyIntent' ;
},
async handle(handlerInput) {
    const response = await httpGet();

    console.log(response);

    return handlerInput.responseBuilder
            .speak("Okay. Here is what I got back." + response.records.fields.Indication)
            .reprompt("Would you like to learn more?")
            .getResponse();
},
};     
function httpGet() {
return new Promise(((resolve, reject) => {
    const headers = {
        Authorization: 'Bearer key12345678'
    };
    var options = {
        host: 'api.airtable.com',
        port: 443,
        path: '/v0/appYqfJ3Rt2F0sRGn/Database?filterByFormula=(DrugName=%27azatadine%27)',
        method: 'GET',
    };
    const request = https.request(options, {headers}, (response) => {
        response.setEncoding('utf8');
        let returnData = '';

        response.on('data', (chunk) => {
          returnData += chunk;
        });

        response.on('end', () => {
          resolve(JSON.parse(returnData));
        });

        response.on('error', (error) => {
          reject(error);
        });
      });
      request.end();   
}));
}

標頭進入選項對象,而不是作為單獨的參數:

    var options = {
        host: 'api.airtable.com',
        port: 443,
        path: '/v0/appYqfJ3Rt2F0sRGn/Database?filterByFormula=(DrugName=%27azatadine%27)',
        method: 'GET',
        headers: {
          Authorization: 'Bearer key12345678'
        }
    };

https.request接受與http.reqest相同的選項字段。 http.request options對象允許定義標題。

暫無
暫無

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

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