1 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
我在您的代碼中發(fā)現(xiàn)了一些錯(cuò)誤并修復(fù)了它以使其正常工作:
對(duì)于您使用的 PHP 版本,您需要添加
curl_setopt($curls, CURLOPT_RETURNTRANSFER, true);
以確保它不僅打印 API 響應(yīng)而且還返回它您需要在 Bearer 和訪問(wèn)令牌之間留一個(gè)空格:
array('Authorization: Bearer ' .$data['access_token']));
您嘗試調(diào)用的示例是錯(cuò)誤的,返回日期早于出發(fā)日期。我將其更改為一個(gè)更簡(jiǎn)單的示例:
https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=EWR&destinationLocationCode=MIA&departureDate=2020-09-10&returnDate=2020-09-17&adults=1&max=1
。在進(jìn)行 API 調(diào)用之前,您需要將 更改
CURLOPT_POST
為 false (因?yàn)槟鷩L試調(diào)用的 API 是 a?GET
)
下面是完整的示例:
$curls = curl_init();
curl_setopt($curls, CURLOPT_URL, 'https://test.api.amadeus.com/v1/security/oauth2/token');
curl_setopt($curls, CURLOPT_POST, true);
curl_setopt($curls, CURLOPT_POSTFIELDS, "grant_type=client_credentials&client_id=$secretid&client_secret=$secretkey");
curl_setopt($curls, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
curl_setopt($curls, CURLOPT_RETURNTRANSFER, true);
$token = curl_exec($curls);
$data = json_decode($token,true);
curl_setopt($curls, CURLOPT_URL, 'https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=EWR&destinationLocationCode=MIA&departureDate=2020-09-10&returnDate=2020-09-17&adults=1&max=1');
curl_setopt($curls, CURLOPT_POST, false);
curl_setopt($curls, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' .$data['access_token']));
$result = curl_exec($curls);
? ? if (curl_errno($curls)) {
? ? ? ? echo 'Error:' . curl_error($curls);
? ? }
print_r ($result);
curl_close ($curls);
注意:我不是 PHP 專家,我確信代碼可以改進(jìn)。
- 1 回答
- 0 關(guān)注
- 250 瀏覽
添加回答
舉報(bào)