A python interface to the MemberSuite API
Install from PyPI.
```pip install membersuite-api-client```
In your MemberSuite account, you will need to create a dedicated API console user. Ensure that API access is enabled for your MemberSuite account, and also check the box for "API User" for this new user account.
Create a keypair for this user via the console and save the credentials generated somewhere secure (they cannot be retrieved later if lost)
from membersuite_api_client.client import ConciergeClient
client = ConciergeClient(
access_key=MS_ACCESS_KEY,
secret_key=MS_SECRET_KEY,
association_id=MS_ASSOCIATION_ID)
To authenticate and receive a session ID:
client.request_session()
print client.session_id
To take advantage of a service, for example subscriptions
:
service = SubscriptionService(self.client)
subscription_list = service.get_subscriptions(org_id=1)
To run all tests:
$ nosetests
To run specific tests, load them by module. For example:
$ python -m membersuite_api_client.tests.test_subscriptions
Looking to contribute? The best place to start is in the code base. Notice how
we created modules for each MemberSuite object, like organizations
.
Each module contains services.py
and models.py
files.
Your "models" are simply python representations of the MemberSuite objects.
Your "services" provide interfaces to those models in MemberSuite. This is
where objects are retrieved from MemberSuite and converted to your models for
use in a python app. It is recommended that the services be classes and if
you define result_to_models
and ms_object_to_model
methods on the class
you can use the ChunkQueryMixin to make large queries.
This can now be used to make additional calls using the methods included in the WSDL from MemberSuite. For documentation on available methods and their usage, see http://api.docs.membersuite.com/
Use request_session() as a model for constructing the headers for your own functions in your app that follow this method:
1) Call client.construct_concierge_header(url) to generate a new header element, using your method's URL as an argument.
2) Call client.service.method_name(_soapheaders=[concierge_request_header], method arguments)
3) Return any relevant data out of the response object
IMPORTANT NOTE: In constructing headers, SessionId must appear first.