Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

EmsAuth plugin for HTTPie.

Project description

This HTTPie auth plugin implements Escher authentication for Emarsys API requests.


Be sure that HTTPie is installed, and install this plugin:

$ pip install httpie-ems-auth

After installing, you will see the option ems-auth under --auth-type if you run $ http --help.


Suiteable if you call the API of Suite

$ http --auth-type=ems-auth --auth=escher_key:escher_secret

The default Escher credential scope is “eu/suite/ems_request” which identifies Suite. If u are calling another service, you have to alter the credential scope like this:

$ http --auth-type=ems-auth --auth=eu/suite/ems_request/escher_key:escher_secret

Check out HTTPie sessions if you would like to save authentication information between your requests.

If you want to use in python code this example can help:
import escherauth
import datetime
from urlparse import urlparse
import requests

escher_key = 'test'
escher_secret = 'test'
options = {
            'algo_prefix': 'EMS',
            'vendor_key': 'EMS',
            'hash_algo': 'SHA256',
            'auth_header_name': 'X-Ems-Auth',
            'date_header_name': 'X-Ems-Date'

credential_scope = "test"

if "/" in escher_key:
    scope = escher_key.split("/")
    escher_key = scope.pop()
    credential_scope = "/".join(scope)

client = {'api_key': escher_key, 'api_secret': escher_secret}
escher = escherauth.Escher(credential_scope, options)

url = ''

r = requests.PreparedRequest()
now = datetime.datetime.utcnow()
r.headers['X-Ems-Date'] = now.strftime('%Y%m%dT%H%M%SZ')
parsed_uri = urlparse(r.url)
r.headers['Host'] = parsed_uri.netloc

f = escher.sign(r, client)
s = requests.Session()


Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
httpie_ems_auth_p3-0.2.3-py2.7.egg (4.6 kB) Copy SHA256 hash SHA256 Egg 2.7 Nov 10, 2016
httpie-ems-auth-p3-0.2.3.tar.gz (2.9 kB) Copy SHA256 hash SHA256 Source None Nov 10, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page