HCP OpenAPI's Headers Configuration
This page is writing about the correct steps to configure the required request headers before sending an API request at HCP OpenAPI.
HikCentral Professional (HCP) v2.4.1 is used.
Prerequisite
APPkey (header:
X-Ca-Key
)APPsecret (used for the formation of signature string)
Signature String (header:
X-Ca-Signature
)
APPkey and APPsecret
Both APPkey and APPsecret can be found after creating a partner at Open Platform (https://IPaddress/artemis-web > Partner Management).
APPkey is included in the request header, while APPsecret is used for the calculation of signature string.
Signature String
Form a string with the request method, header’s Accept, header’s Content-Type and URI, separated by “\n“
Convert the string with HmacSHA256 algorithm and APPsecret as the key, to generate message digest.
Encode the message digest in Base64, to generate the signature string.
Prepare the request header
Use the APPkey and Signature String to form the request header.
{
'X-Ca-Key': <APPkey>,
'X-Ca-Signature': <Signature String>
}
Sample Code
Calculating Signature String
def generate_signature(app_key, app_secret, method, path):
message = "POST\n*/*\napplication/json\n/artemis/api/example" # Initial string
key_bytes = bytes(app_secret, 'utf-8') # key
message_bytes = bytes(message, 'utf-8') # msg
signature = hmac.new(key_bytes, msg=message_bytes, digestmod=hashlib.sha256).digest() # message digest
encoded_signature = base64.b64encode(signature).decode('utf-8') # signature string
return encoded_signature
Creating the request header
headers = {
'X-Ca-Key': app_key, # Get from Open Platform
'X-Ca-Signature': encoded_signature # Get from calculation
}
response = requests.request("POST", url, headers=headers, json=request_body)
Copyright © Asia Pacific University. All Rights Reserved.