Python 3 version: encode before hmac.new(), decode after getresponse().

Py3 wants a 'bytes' or 'bytearray' for hmac.new(). Since __api_secret
is a string, and will most probably be specified by the user as a string,
do the encoding.

HTTPSConnection.getresponse() returns a .read()-able object, however,
json.load() uses json.loads() internally, which fails because the response
has not been decoded. For simplicity, read and decode explicitly, then
call json.loads().