接入教程
1. 阅读授权指南生成访问令牌
2. 调用API端点搜索航班报价
3. 解析返回的航班数据结果
4. 处理错误响应并优化查询
Python搜索航班报价示例
python
import requests
# 获取访问令牌(示例)
token_url = 'https://test.api.amadeus.com/v1/security/oauth2/token'
token_data = {
'grant_type': 'client_credentials',
'client_id': 'YOUR_API_KEY',
'client_secret': 'YOUR_API_SECRET'
}
token_response = requests.post(token_url, data=token_data)
access_token = token_response.json().get('access_token')
# 搜索航班报价
search_url = 'https://test.api.amadeus.com/v2/shopping/flight-offers'
headers = {'Authorization': f'Bearer {access_token}'}
params = {
'originLocationCode': 'SYD',
'destinationLocationCode': 'BKK',
'departureDate': '2024-12-01',
'adults': 1
}
response = requests.get(search_url, headers=headers, params=params)
print(response.json())
PHP搜索航班报价示例
php
<?php
// 获取访问令牌(示例)
$tokenUrl = 'https://test.api.amadeus.com/v1/security/oauth2/token';
$tokenData = array(
'grant_type' => 'client_credentials',
'client_id' => 'YOUR_API_KEY',
'client_secret' => 'YOUR_API_SECRET'
);
$ch = curl_init($tokenUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($tokenData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tokenResponse = curl_exec($ch);
$accessToken = json_decode($tokenResponse, true)['access_token'];
curl_close($ch);
// 搜索航班报价
$searchUrl = 'https://test.api.amadeus.com/v2/shopping/flight-offers';
$headers = array('Authorization: Bearer ' . $accessToken);
$params = array(
'originLocationCode' => 'SYD',
'destinationLocationCode' => 'BKK',
'departureDate' => '2024-12-01',
'adults' => 1
);
$ch = curl_init($searchUrl . '?' . http_build_query($params));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
JavaScript搜索航班报价示例
javascript
// 获取访问令牌(示例)
async function getAccessToken() {
const tokenUrl = 'https://test.api.amadeus.com/v1/security/oauth2/token';
const tokenData = new URLSearchParams({
grant_type: 'client_credentials',
client_id: 'YOUR_API_KEY',
client_secret: 'YOUR_API_SECRET'
});
const tokenResponse = await fetch(tokenUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
body: tokenData
});
const tokenJson = await tokenResponse.json();
return tokenJson.access_token;
}
// 搜索航班报价
async function searchFlightOffers() {
const accessToken = await getAccessToken();
const searchUrl = 'https://test.api.amadeus.com/v2/shopping/flight-offers';
const params = new URLSearchParams({
originLocationCode: 'SYD',
destinationLocationCode: 'BKK',
departureDate: '2024-12-01',
adults: 1
});
const response = await fetch(`${searchUrl}?${params}`, {
headers: { 'Authorization': `Bearer ${accessToken}` }
});
const data = await response.json();
console.log(data);
}
searchFlightOffers();
常见问题
如何获取API访问令牌?
请参考Amadeus官方授权指南,使用您的客户端ID和密钥通过OAuth 2.0客户端凭证流程获取访问令牌。测试环境使用test.api.amadeus.com域名。
测试环境和生产环境有什么区别?
测试环境基于生产环境的子集,数据可能有限或为模拟数据,主要用于开发和集成测试,不建议用于生产流量。
搜索航班报价时需要哪些必需参数?
必需参数包括:出发地机场代码(originLocationCode)、目的地机场代码(destinationLocationCode)、出发日期(departureDate)和成人乘客数量(adults)。
Aitishiku.com