Packages which makes simplier integration with MoneyMade OAuth feature
Project description
moneymade-connect-oauth-python-sdk
This package contains helpers which should be useful for integration with moneymade.io oauth feature.
Navigation
- Install
- SDK initialization
- Handling oauth request security
- Finishing oauth request
- Pushing accounts data
- Pushing transactions data
- Developers
Install
pip install moneymade-connect-oauth-python-sdk
SDK initialization
Firstly, receive public and private key from moneymade.io side. You are able to get it from console dashboard. (Contact moneymade devs team to add you to your project team)
from moneymade_connect_python_sdk import moneymade_connect
sdk = moneymade_connect.MoneyMadeConnect(private_key='private key',
public_key='public key',
env='development'
)
Handling oauth request security
Oauth page receives signature and payload according to oauth page design.
Data interchage is protected by signature. Payload is base64 encoded string contains userId. (The userId is a link to external user who is going to share your provider data with moneymade.io)
Use base64_to_dict sdk method to transform payload to dict:
request_payload = sdk.base64_to_dict(payload)
Use sdk generate_signature method to generate signature for request validation:
generated_signature = sdk.generate_signature(payload_dict)
Full example how to validate request:
# this is a query string value which is received by your oauth page
received_qs = 'payload=eyJ1c2VySWQiOiJhYm&signature=fa595194c0'
query_params = sdk.query_string_to_dict(received_qs)
payload = query_params['payload']
signature = query_params['signature']
request_payload = sdk.base64_to_dict(payload)
if signature == sdk.generate_signature(request_payload):
# handle success oauth validation
else
# handle oauth error
Finishing oauth request
After success request validation and handling userId linking you should to finish oauth request. See docs for more info.
Finish oauth payload depends on chosen data interchage stategy.
Payload for pushing strategy contains userId and user accounts data to be shared with moneymade.io. Accounts payload schema is agnostic. (Contact moneymade.io devs team to set up it for your accounts schema sample)
Typicall payload for pushing strategy looks like:
payload = {
"userId": 'id your read from oauth payload',
"accounts": [{
"id": 'some-account-id",
"balance": 1000,
"name": 'Checking account 1'
}]
}
Payload for pushing strategy contains userId and accessToken which is used to pull your endpoint for user info. (Contact moneymade.io devs team to set up API url to fetch user data and other's security points)
Payload for pushing strategy isn't agnostic and should look like:
payload = {
"userId": 'id your read from oauth payload',
"accessToken": 'access-token-to-pull-your-api'
}
Pushing accounts data
If you chose pushing strategy, you should push moneymade.io API with user data to refresh it. You may use sdk push_accounts method to send us user's account data.
This payload schema is agnostic. (Contact moneymade.io devs team to set up it for your accounts schema sample)
Typically this payload looks like:
payload = {
"userId": "id your read from oauth payload before",
"accounts": [{
"id": 'some-account-id",
"balance": 1000,
"name": 'Checking account 1'
}]
}
Pushing transactions data
We're working on it. Cooming soon :)
Developers:
This section contains hints for sdk developers to make development easier.
Testing version publishing commands:
- Install dev dependencies
python3 -m pip install --upgrade build
- Build the package
python3 -m build
- Publish to test repository
python3 -m twine upload --repository testpypi --skip-existing dist/*
- Install latest test version
python -m pip install --index-url https://test.pypi.org/simple --upgrade moneymade-connect-oauth-python-sdk
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for moneymade-connect-oauth-python-sdk-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0c7a2b8c246fdff0293c88f534fedba8a5e5d591246df7f18215607419a698f4 |
|
MD5 | 05de4a2c3bd47497969d54b6c369ee44 |
|
BLAKE2b-256 | d8751ba4bc867e1d95f93d8b1a5215d7b626238855a44113b353f996111844d3 |
Hashes for moneymade_connect_oauth_python_sdk-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54691d2a494653588a72a7406ac532770d5543f0949cc11b735d4087b1c16304 |
|
MD5 | 4be15f28a5e7c02b51de24283c653e47 |
|
BLAKE2b-256 | 8ad9e02b1f96311f2f942485d84162a14bd40b6e55112586a892e4eaa1898640 |