1

我只是尝试向 amadeus API 发出请求

我已经有了 API KEY 和 API Secret,我用我的 API 密钥的值传入 XHR 标头授权

这是我的jQuery:

$.ajax({
            type: "get",
            url: "https://test.api.amadeus.com/v1/shopping/flight-dates?origin=MIA&destination=SFOˆduration=15&nonStop=true",
            dataType: 'json',
            async: true,
            beforeSend: function(xhr) {
                xhr.setRequestHeader('Authorization',
                    'Basic ' + amadeusApiKey);
            },                
            success: function(json) {
                console.log(json);
            }
        });

但响应是 HTTP 代码 401 和正文

    {
    "errors": [
      {
        "code": 38190,
        "title": "Invalid access token",
        "detail": "The access token provided in the Authorization header is invalid",
        "status": 401
      }
    ],
}

我是否应该使用 API Key 和 Secret Key 进行一些编码,我在文档中找不到任何内容

4

1 回答 1

3

您尝试定位的 API 使用客户端凭据授予类型进行保护。

在进行调用之前,您应该使用您的 API 密钥/秘密生成访问令牌,请参阅本指南。生成访问令牌后,您的请求应如下所示:

$.ajax({
        type: "get",
        url: "https://test.api.amadeus.com/v1/shopping/flight-dates?origin=MIA&destination=SFOˆduration=15&nonStop=true",
        dataType: 'json',
        async: true,
        beforeSend: function(xhr) {
            xhr.setRequestHeader('Authorization',
                'Bearer ' + amadeusAccessToken);
        },                
        success: function(json) {
            console.log(json);
        }
    });

或者,Amadeus 提供了一些SDK来抽象这种复杂性。

于 2018-04-29T12:35:42.480 回答