import hashlib import hmac import time import base64 from urllib.parse import quote_plus import pycurl from io import StringIO from io import BytesIO import certifi json_args = '{"command":"quarters"}' secret_key = 'YOUR_SECRET_KEY' shared_key = 'YOUR_SHARED_KEY' formatted_args = quote_plus(json_args) timenow = time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime()) digest = hashlib.sha1 raw_args=json_args+'\n'+timenow hmac_hash = hmac.new(secret_key.encode(),raw_args.encode(),digest).digest() sig = base64.b64encode(hmac_hash).rstrip() url_base = 'https://whalewisdom.com/shell/command.json?' url_args = 'args=' + formatted_args url_end = '&api_shared_key=' + shared_key + '&api_sig=' + sig.decode() + '×tamp=' + timenow api_url = url_base + url_args + url_end buffer = BytesIO() c = pycurl.Curl() c.setopt(c.CAINFO, certifi.where()) c.setopt(c.URL, api_url) c.setopt(pycurl.WRITEFUNCTION, buffer.write) c.perform() c.close() body = buffer.getvalue() print(body)