Custom alexa skill API for Monzo with help using the my monzo-python api wrapper.
A basic and slow example of the API working with echosim.io: https://www.youtube.com/watch?v=Llodh4puJMo
- Create a new Monzo OAuth Client for testing
export MONZO_CLIENT_ID=#####
export MONZO_CLIENT_SECRET=#####
py.test tests -v
WARNING
Setting up and testing this custom skill is not very friendly. This is because you need to setup your own Monzo OAuth client, you need a server to run the API and you will also need to setup your own custom Alexa skill (as each none published custom skill is linked to a developer account).
- A HTTPS server with python installed to run the flask code
- A Monzo developer account and a OAuth Client (https://developers.monzo.com/)
- A Amazon developer account (https://developer.amazon.com)
This is a basic and poor explanation on the setup, I actually use supervisor and nginx to run the flask app (see server_setup/
). If you want help with setting up a server let me know.
- Fork this repo
git clone [yourfork] && cd monzo-alexa-skill
pip install -r requirements.txt
pip install -e git+git@[yourfork]#egg=Package
# Replace the github link with your forkexport ALEXA_APP_ID=#####
# You will need to have done the Alexa Setup for thisPYTHONPATH=./ python monzo_skill/app.py
- Test it's running at https://[yourserver]/
Note: If you are using echosim.io make sure you skill language is English (U.S.)
or you skill will not be recognised
- Add a new Alexa skill at https://developer.amazon.com/edw/home.html#/skills/list
- Skill Information
- Skill Type: Custom Interaction Model
- Name: Monzo
- Invocation Name: Monzo
- Audio Player: No
- Interaction Model
- Intent Schema: Copy from
monzo_skill/intent_shema.json
- Sample Utterances: Copy from
monzo_skill/utterances.txt
- Intent Schema: Copy from
- Configuration
- Service Endpoint Type: HTTPS
- HTTPS URL: Europe - https://[yourserver]/alexa/
- Account Linking: Yes
- Authorization URL: https://auth.getmondo.co.uk/
- Client Id: From your Monzo OAuth Client
- Redirect URL: Take the redirect URL and put it into your Monzo OAuth Client
- Authorization Grant Type: Auth Code Grant
- Access Token URI: https://api.monzo.com/oauth2/token
- Client Secret: From your Monzo OAuth Client
- Client Authentication Scheme: HTTP Basic
- SSL Certificate
- Certificate for EU Endpoint: My development endpoint has a certificate
- Login to echosim.io
- Login to http://alexa.amazon.com/
- Go to Skills > Your Skills (top right) > Monzo > Link Account
- You are ready to go. Get testing on echosim.io
- Add logging