亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在curl php中傳遞access_token時Amadeus Flight搜索API出現錯誤

在curl php中傳遞access_token時Amadeus Flight搜索API出現錯誤

PHP
動漫人物 2023-10-22 21:46:51
我正在集成 amadeus 航班搜索 api,但在使用 access_token 時出現錯誤。我猜問題出在檢索訪問令牌?{ "errors": [ { "code": "38191", "title": "Invalid HTTP header", "detail": "Missing or invalid format for mandatory Authorization header", "status": "401" } ] }我需要獲取從出發地到目的地的所有航班及其價格詳細信息。$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'));$token = curl_exec($curls);$data = json_decode($token,true);curl_setopt($curls, CURLOPT_URL, 'https://test.api.amadeus.com/v2/shopping/flight-offers?originLocationCode=SYD&destinationLocationCode=BKK&departureDate=2020-10-01&returnDate=2020-08-05&adults=2&includedAirlineCodes=TG&max=3');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);
查看完整描述

1 回答

?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

我在您的代碼中發現了一些錯誤并修復了它以使其正常工作:

  1. 對于您使用的 PHP 版本,您需要添加curl_setopt($curls, CURLOPT_RETURNTRANSFER, true);以確保它不僅打印 API 響應而且還返回它

  2. 您需要在 Bearer 和訪問令牌之間留一個空格:array('Authorization: Bearer ' .$data['access_token']));

  3. 您嘗試調用的示例是錯誤的,返回日期早于出發日期。我將其更改為一個更簡單的示例: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

  4. 在進行 API 調用之前,您需要將 更改CURLOPT_POST為 false (因為您嘗試調用的 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 專家,我確信代碼可以改進。


查看完整回答
反對 回復 2023-10-22
  • 1 回答
  • 0 關注
  • 255 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號