【问题标题】:Amadeus API Authentication艾玛迪斯 API 身份验证
【发布时间】:2018-04-28 20:16:04
【问题描述】:

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

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

这是我的 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 进行一些编码,我在文档中找不到任何内容

【问题讨论】:

    标签: api amadeus


    【解决方案1】:

    您尝试定位的 API 使用 Client credentials grant 类型保护。

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

    $.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 提供了一些 SDKs 来抽象这种复杂性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多