# MailChimp (OAuth 2)

MailChimp has a simple API for working with your own data and a good library already exists for this use. However, to allow other MailChimp users to use an app you develop, the OAuth2 API allows those users to give or revoke access without creating a key themselves.

## Registering a new app

Instructions for generating your own OAuth2 app can be found at https://developer.mailchimp.com/documentation/mailchimp/guides/how-to-use-oauth2/. It is worth reading that carefully before following the instructions below.

Login via https://login.mailchimp.com/, which will redirect you to `https://usX.admin.mailchimp.com/` where the prefix `usX` (`X` is an integer) is the subdomain you need to connect to. Click on your username in the top right corner and select Profile. On the next page select Extras then click API keys, which should lead you to:

App registration (where `X` is dependent on your account)

  https://usX.admin.mailchimp.com/account/oauth2/

Fill in the form with the following URL for local development:

Development callback URL

  https://127.0.0.1:8000/accounts/mailchimp/login/callback/

## Testing Locally

Note the requirement of https. If you would like to test OAuth2 authentication locally before deploying a default django project will raise errors because development mode does not support `https`. One means of circumventing this is to install `django-extensions`:

    pip install django-extensions

add it to your `INSTALLED_APPS`

    INSTALLED_APPS = (
        ...
        'django_extensions',
        ...
    )

and then run:

    ./manage.py runserver_plus --cert cert

which should allow you to test locally via https://127.0.0.1:8000. Some browsers may require enabling this on localhost and not support by default and ask for permission.