Skip to content

SDK account

ChrisTerBeke edited this page Sep 27, 2018 · 7 revisions

The Ultimaker Cura SDK (also known as the plugins API) has functionality to use the Ultimaker Account functionality.

Setup

Start by creating an instance of the Cura API

from cura.API import CuraAPI

...

api = CuraAPI()

Sign in

To have a user sign in with their Ultimaker Account, call the account.login method:

api.account.login()

This will start a secure OAuth2 login flow where the user will give permission to Cura to access their data. After this flow is complete, a signal will be emitted with the updated login state:

def onLoginStateChanged(logged_in: bool = False):
    print("logged in", logged_in)

...

api.account.onLoginStateChanged(onLoginStateChanged)

You can also check the isLoggedIn property at any time:

api.account.isLoggedIn

Profile

Now that the user is signed in, you can get some basic information about them to show in your plugin or interface:

api.account.userProfile  # dict containing 'user_id', 'username', 'profile_image_url'

Access Token

If your plugin needs to call one of Ultimaker's Cloud APIs, you can use the access token for this:

api.account.accessToken

Be sure to add this token as Authorization header to your HTTP request as type Bearer. More details about using the Ultimaker Cloud APIs can be found at https://api.ultimaker.com/docs/.

Sing out

Now that you're all done, you might want to sign the user out:

api.account.logout()

Examples

  • CuraDrivePlugin - Uses the Ultimaker Account and Cloud APIs to backup and restore your Cura configuration.
Clone this wiki locally