Токен доступа в тестовом тестировании Amadeus установлен только на 30 минут? - PullRequest
0 голосов
/ 03 января 2019

Я в настоящее время создаю сайт туристического агентства, и я использую Amadeus для поиска низких цен на билеты и т. Д., Но каждый раз срок действия токена истекал через 30 минут.Я получаю статус 401 (срок действия маркера истек).И повторять запрос другого токена доступа через их сайт и вставить его в мои коды.Могу ли я спросить, есть ли решение, чтобы оно автоматически меняло мой токен доступа в моих кодах

В настоящее время я использую эти коды для запроса кодов доступа

**

$url = "https://test.api.amadeus.com/v1/security/oauth2/token";
$curls = curl_init();
curl_setopt($curls, CURLOPT_URL, $url);
curl_setopt($curls, CURLOPT_POST, true);
curl_setopt($curls, CURLOPT_POSTFIELDS, 'grant_type=client_credentials&client_id={apikey}&client_secret={apisecret}');
curl_setopt($curls, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
$token = curl_exec($curls);
curl_close($curls);
$tokenresult = json_decode($token,true);
print_r ($tokenresult);

**

но каждый раз, когда я обновляю свой сайт, он также отображает

"type": "amadeusOAuth2Token",
            "username": "",
            "application_name": "Thesis",
            "client_id": "",
            "token_type": "Bearer",
            "access_token": "*****",
            "expires_in": 1799,
            "state": "approved",
            "scope": ""

, что очень раздражает.

, и это мой код, использующий access_token

$ch = curl_init("https://test.api.amadeus.com/v1/shopping/flight-offers?origin=$client_flyingfrom&destination=$client_flyingto&departureDate=$client_departing&returnDate=$client_returning&nonStop=false&currency=PHP&max=2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   'Content-Type: application/json',
   'Authorization: Bearer *****' 
   ));
$data = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
$json = json_decode($data,true);
print_r($json);

Вы можете мне помочь?Есть ли способ автоматически изменить мой токен доступа без копирования и вставки новых токенов доступа в мои коды?большое спасибо, ребята

1 Ответ

0 голосов
/ 08 января 2019

Вы можете найти руководство здесь , которое поможет вам реализовать процесс авторизации oauth2.

Срок действия токена составляет 30 минут, но вы можете запросить новый токен в любое время (нет необходимости проходить через портал, у вас есть API для этого).Тот, что на портале, на самом деле существует только для того, чтобы позволить вам играть с API без написания кода.

Первый код, который вы опубликовали, реализует процесс oauth2 для получения access_token, вам просто нужно вызывать его каждые 30 минут, чтобыполучить новый (или даже раньше - до вас).От этого вызова вы сохраняете access_token и добавляете его в заголовок при следующих вызовах API (объяснение в руководстве).

Из-за этой строки он печатается на вашем веб-сайте

print_r ($ tokenresult)

...