Python
Python 2
This example demonstrates an HTTP GET of Lingk event subscriptions.
#!/usr/bin/env
import datetime
import httplib
import hashlib
import hmac
import base64
import urllib
# Constants
endPoint = "www.lingkapis.com"
keyId = "[Access Key]"
secret = "[Secret]"
def createSignature(secret, signingStr):
"""Creates signature for a signing string"""
message = bytes(signingStr).encode('ascii')
secret = bytes(secret).encode('ascii')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha1).digest())
return signature
def createAuthHeader(keyId, secret, dateStr):
"""Generates authorization header for a given key and secret"""
requestPath = "/v1/@self/webhooks/subscriptions"
requestMethod = "GET"
signingStr = "date: " + dateStr + "\n(request-target): " + requestMethod.lower() + " " + requestPath
encodedHMAC = urllib.quote_plus(createSignature(secret, signingStr))
return "Signature keyId=\"" + keyId + "\",algorithm=\"hmac-sha1\",headers=\"date (request-target)\",signature=\"" + encodedHMAC + "\""
def getHTTPResponse(endPoint, authorizationHeader, dateStr):
"""Connects to an endpoint via HTTPS and retrieves response"""
connection = httplib.HTTPSConnection(endPoint)
headers = {'Date': dateStr, 'Authorization': authorizationHeader}
connection.request('GET', '/v1/@self/webhooks/subscriptions', headers=headers)
response = connection.getresponse()
return response
# Start here
dateStr = datetime.datetime.utcnow().strftime("%a, %d %b %Y %H:%M:%S UTC")
authorizationHeader = createAuthHeader(keyId, secret, dateStr)
res = getHTTPResponse(endPoint, authorizationHeader, dateStr)
data = res.read()
print(data)Python 3
This example demonstrates an HTTP POST of Lingk events.
Last updated
Was this helpful?