DataFlex
DataFlex
hotelbeds.com REST API Authentication
See more HTTP Misc Examples
Demonstrates how to calculate the X-Signature header and add to requests sent to api.test.hotelbeds.com.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoDt
Boolean iBLocalTime
String sUnixTimeStr
String sApiKey
String sSecret
Handle hoSb
Handle hoCrypt
String sSignature
Handle hoHttp
String sJsonResponse
String sTemp1
Integer iTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// This example duplicates the following CURL statement provided in the hotelbeds.com "Getting Started"
// developer documentation:
// #!/bin/bash
// apiKey="yourApiKey"
// secret="yourSecret"
// curl -i \
// -X GET \
// -H 'Accept:application/json' \
// -H 'Api-key:'$apiKey'' \
// -H 'X-Signature:'$(echo -n ${apiKey}${secret}$(date +%s)|sha256sum|awk '{ print $1}')'' \
// https://api.test.hotelbeds.com/hotel-api/1.0/status
// The "date + %s" command emits a UNIX date/time number such as 1605548842
// We need to concatenate the apiKey, secret, and current date/time in UNIX (numeric) time format.
Get Create (RefClass(cComCkDateTime)) To hoDt
If (Not(IsComObjectCreated(hoDt))) Begin
Send CreateComObject of hoDt
End
Get ComSetFromCurrentSystemTime Of hoDt To iSuccess
// Get the UNIX time string in the GMT timezone.
Move False To iBLocalTime
Get ComGetAsUnixTimeStr Of hoDt iBLocalTime To sUnixTimeStr
Showln sUnixTimeStr
// Use your own API key and secret. (These are not valid values)
Move "227b20a2cb705e45f3b0a0944672dc07" To sApiKey
Move "54dc7ba9e2" To sSecret
Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
If (Not(IsComObjectCreated(hoSb))) Begin
Send CreateComObject of hoSb
End
Get ComAppend Of hoSb sApiKey To iSuccess
Get ComAppend Of hoSb sSecret To iSuccess
Get ComAppend Of hoSb sUnixTimeStr To iSuccess
Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt
If (Not(IsComObjectCreated(hoCrypt))) Begin
Send CreateComObject of hoCrypt
End
Set ComHashAlgorithm Of hoCrypt To "sha256"
Set ComEncodingMode Of hoCrypt To "hexlower"
Get ComGetAsString Of hoSb To sTemp1
Get ComHashStringENC Of hoCrypt sTemp1 To sSignature
Showln sSignature
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Send ComSetRequestHeader To hoHttp "Accept" "application/json"
Send ComSetRequestHeader To hoHttp "Api-key" sApiKey
Send ComSetRequestHeader To hoHttp "X-Signature" sSignature
Get ComQuickGetStr Of hoHttp "https://api.test.hotelbeds.com/hotel-api/1.0/status" To sJsonResponse
Showln sJsonResponse
Get ComLastStatus Of hoHttp To iTemp1
Showln iTemp1
// Sample output:
// 1605549542
// 2146aefb36e7331b3b29aafd7638398ca22e689573224f1a71274d60bd201ec2
// {"auditData":{"timestamp":"2020-11-16 18:59:02.430"},"status":"OK"}
// 200
End_Procedure