輸入提示白標旅遊平台 API
在旅客搜尋時向他們提供建議
Typehead (GET /suggestions) 是一個新的 API 端點,可讓您根據地理區域、相關地點及可預訂的住宿設施,為旅客提供建議式搜尋體驗。此端點會根據部分搜尋字串及使用者輸入的任何請求參數,回傳一組建議清單。請聯絡您的客戶經理,將輸入提示新增至您的帳戶中。
運作方式
輸入提示 API 是一項語言預測工具——有時 也被稱為自動完成或自動建議功能。它會根據使用者在搜尋框中輸入的部分資訊,回傳一組地區、地點或房產的清單。當使用者在搜尋框中輸入內容時,輸入提示 API 將開始根據城市、地區、旅宿或郵遞區號等資訊,回傳最多 10 項搜尋結果。旅客隨後可從此清單中選擇項目以開始搜尋,或繼續輸入文字以進一步精確化系統自動建議的結果。
舉例來說,若搜尋詞以「Memp」開頭,系統會顯示數個地理選項,包括與美國田納西州曼菲斯相關的社區、火車站、機場等,其次則是美國密蘇里州的曼菲斯。
啟動指南
您需要聯絡您的客戶經理、技術客戶經理 (TAM) 或合作夥伴解決方案經理 (PSM),以了解該 API。他們將申請存取權限核准,若獲批准,便會修改您的協議,將輸入提示納入其中。一旦您的組織啟用了輸入提示功能,您的 TAM 或 PSM 將協助您進行任何必要的開發工作。
啟動需求:
- 您必須採用並使用「不透明存取憑證」流程進行身分驗證。
>> 進一步了解如何取得不透明存取憑證 - 存取憑證僅能由提出請求的相同迴路 ID 或 API 金鑰使用。
- 存取憑證的有效期僅為 25 分鐘。
- 申請新的存取憑證時,應設計為依照該時程表定期刷新,且更新頻率不宜過高。
- 「語言」和「請求內容」為必填參數。
>> 查看「白標旅遊平台」支援的語言清單
授權與存取
已升級至第 3 版的合作夥伴,可透過 API 端點呼叫輸入提示 API。一旦獲得批准,我們將為您建立一個新的帳戶,並授予您成功使用該 API 所需的權限。
建立授權
輸入提示 API 的驗證需要一個存取金鑰。透過授權標頭,您將提供您的 API 金鑰來呼叫 EPS 閘道,以取得存取金鑰。接著,您可以透過將存取金鑰作為授權標頭傳入,來呼叫輸入提示 API 端點。
範例:將 API 金鑰以 base64 格式進行編碼
var api_key = postman.getEnvironmentVariable("api_key");
var shared_secret= postman.getEnvironmentVariable("shared_secret");
var base64Hash = CryptoJS.enc.Utf8.parse(api_key + ":" + shared_secret);
var base64 = CryptoJS.enc.Base64.stringify(base64Hash);
postman.setEnvironmentVariable("base64",base64);取得不透明存取憑證
使用輸入提示 API 時,必須使用不透明的存取憑證——即不包含任何關於使用者或資源資訊的憑證。
範例請求
POST – https://api.ean.com/identity/oauth2/v3/token
Header:
Key: ‘Authorization’
Value: ‘Basic {base64}’範例回應
{
"access_token": "p1xy6rxahicQPUIX_Sq6a52yFnHXpX3ImaSX9sKiUI4:XM8qZiTr1HPDc8FgBE5HLvFTFdICuRFV0-l7gFWI-WU",
"token_type": "bearer",
"expires_in": 1800,
"scope": "demand-solutions.demand-api-wrappers-playground.all"
}發出自動完成請求
您需要在請求標頭和查詢參數中包含一些必填資訊。為了讓回應更為穩健,您也可以加入可選的查詢參數。
要求標頭
必要
Accept: 指定客戶端希望收到的回應格式。此值必須為application/json。Accept-Encoding: 指定客戶端希望接收到的回應編碼。此值必須為gzip。User-Agent:由您的整合系統擷取自客戶請求中的標頭字串。如果您正在開發應用程式,則 ``User-Agent的值應為{app name}/{app version}. 例如,TravelNow/3.30.112。
查詢參數
必要
language: 指定回應所需的語言,其格式為 BCP47 格式的子集,僅使用由 two-digit 語言代碼與國家代碼組 成的連字號連接對。請僅使用 ISO 639-1 alpha-2 語言代碼及 ISO 3166-1 alpha-2 國家代碼,其規範詳見 w3.org (例如,language=en-US) 。
>> 查看支援的語言清單text:要查詢的輸入字串,長度上限為 150 個字元 (例如:text=Springfie)。feature: 變更建議結果的計算方式。值包括hierarchy、nearby_airport以及postal_code。line_of_business: 此參數提供搜尋啟發式演算法,設定有效的值可確保搜尋結果更具相關性。請參閱下方的「允許值」表格,了解可用的選項。
選擇性
type: 描述使用者正在尋找的地點。此參數可以多次指定,並賦予不同的值 (例如:type=AIRPORT&type=CITY)。若未指定,預設值分別為airport、city、multi_city_vicinity、neighborhood、point_of_interest以及airport_metro_code。如需更多資訊,請參閱下方的「允許值」表格。region_id: 將結果篩選為符合指定區域的物業 。origin: 指定查詢文字是來源而非目的地。預設搜尋僅會搜尋目的地。package_type: 根據使用者指定的套件類型進行篩選。請參閱下方的「允許值」表格,了解可用的選項。limit: 指定回應中返回的建議數量上限。此數值必須介於 1 至 10 之間 (例如:limit=5)。若未提供此參數,預設值為 10。
允許 的值
| type | line_of_business | package_type |
|---|---|---|
airport | properties (預設) | flight_property |
city | flights | flight_property_car |
multi_city_vicinity | packages | flight_car |
neighborhood | cars | property_car |
point_of_interest | activities | |
airport_metro_code | ||
multi_region | ||
train_station | ||
metro_station | ||
address | ||
property | ||
bus_station |
若輸入的數值未包含於上表之中,將會導致錯誤。
資料請求
取得access_token 後,您將設定GET 的請求。
範例請求
GET - https://api.ean.com/v3/suggestions?language=en-US&line_of_business=properties&limit=3&text=chicago&type=city&type=neighborhood
Header :
Authorization: Bearer {{access_token}}範例回應
[
{
"related_id": "4477519",
"type": "airport",
"name": "Chicago, IL (ORD-O'Hare Intl.)",
"name_full": "Chicago, IL, United States of America (ORD-O'Hare Intl.)",
"name_display": "<B>Chicago</B>, IL, United States of America (ORD-O'Hare Intl.)",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "ORD",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.976977,
"longitude": -87.90481
}
},
{
"related_id": "829",
"type": "city",
"name": "Chicago",
"name_full": "Chicago, Illinois, United States of America",
"name_display": "<B>Chicago</B>, Illinois, United States of America",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "CHI",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.878113,
"longitude": -87.629799
}
},
{
"related_id": "6350699",
"type": "neighborhood",
"name": "Downtown Chicago",
"name_full": "Downtown Chicago, Chicago, Illinois, United States of America",
"name_display": "Downtown <B>Chicago</B>, <B>Chicago</B>, Illinois, United States of America",
"country_code": "US",
"country_code_3": "USA",
"iata_airport_code": "CHI",
"iata_airport_metro_code": "CHI",
"coordinates": {
"latitude": 41.885969845574834,
"longitude": -87.62933540465228
}
}
]API 詳細資料
在這個頁面上探索相關端點的定義,然後使用 API Explorer 或其他測試軟體,了解範例和結構描述定義與實際輸出的比較。