Skip to content

SDK account

jspijker edited this page Feb 9, 2023 · 7 revisions

The SDK has functionality to use the UltiMaker Account functionality.

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/.

Sign out

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

api.account.logout()

QML

You can also use any of these methods and properties in QML:

import Cura 1.1 as Cura

...

Cura.API.account.login()

Examples

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