0

我可以通过以下代码从生产环境生成 access_token

$curl = curl_init();
        curl_setopt_array($curl, array(
            CURLOPT_URL => "https://api.amadeus.com/v1/security/oauth2/token",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_ENCODING => "",
            CURLOPT_MAXREDIRS => 10,
            CURLOPT_TIMEOUT => 30000,
            CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
            CURLOPT_CUSTOMREQUEST => "POST", 
            CURLOPT_POSTFIELDS => "client_id=XXX&client_secret=XXX&grant_type=client_credentials",
            CURLOPT_HTTPHEADER => array(
                // Set here requred headers
                "accept: */*",
                "accept-language: en-US,en;q=0.8",
                "content-type: application/x-www-form-urlencoded",
            ),
        ));

        $response = curl_exec($curl);
        $err = curl_error($curl);

        curl_close($curl);

之后我试图打电话

https://api.amadeus.com/v1/shopping/flight-dates?origin=MAD&destination=MUC

API。通过使用以下代码

$curl = curl_init();
            curl_setopt_array($curl, array(
                CURLOPT_URL => "https://api.amadeus.com/v1/shopping/flight-dates?origin=JFK&destination=LHR&oneWay=false&nonStop=false",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30000,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "GET",
                CURLOPT_HTTPHEADER => array(
                    // Set here requred headers
                    "accept: */*",
                    "accept-language: en-US,en;q=0.8",
                    "content-type: application/x-www-form-urlencoded",
                    "Authorization: Bearer XXX",
                ),
            ));

            $response = curl_exec($curl);
            $err = curl_error($curl);

            curl_close($curl);

我收到以下错误

{
    "errors": [
        {
            "status": 401,
            "title": "Wrong authentication credentials.",
            "code": 701,
            "source": {
                "pointer": "shopping/flight-dates"
            }
        }
    ]
}

我究竟做错了什么。

4

1 回答 1

1

我们有一个内部配置问题已得到修复,现在一切正常。

两件事:此 API 不支持机场代码,您需要用城市代码(LHR-> LON / JFK -> NYC)替换它们,这也是我们支持机场代码的积压工作的一部分,但尚未交付。所以API调用应该是:

https://api.amadeus.com/v1/shopping/flight-dates?origin=NYC&destination=LON&oneWay=false&nonStop=false

唯一需要的标题是:

    CURLOPT_HTTPHEADER => array(
    "Authorization: Bearer XXX",
    ),
于 2019-03-01T09:00:45.650 回答