Login to the Snap Store using Ubuntu One¶
At the end of this tutorial you will have successfully written a
script that can log you into the Snap Store using Ubuntu One
(https://login.ubuntu.com) and have those credentials stored for the
combination of the Snapcraft Dashboard and
application name (ubuntu1-dashboard
).
Prerequisites¶
Python 3.8 or 3.9
a clean virtual environment setup
a text editor
a developer account on https://snapcraft.io
Setup¶
Enable the virtual environment and then install Craft Store by running:
$ pip install craft-store click
Code¶
Write following into a a text editor and save it as
snap_store_login_ubuntu_one.py
:
import click
from craft_store import *
c = UbuntuOneStoreClient(
base_url="https://dashboard.snapcraft.io",
storage_base_url="https://upload.apps.staging.ubuntu.com",
auth_url="https://login.ubuntu.com",
endpoints=endpoints.U1_SNAP_STORE,
application_name="ubuntu1-dashboard",
user_agent="test",
)
email = click.prompt("Email")
password = click.prompt("Password", hide_input=True)
try:
c.login(
permissions=[
"package_access",
"package_manage",
"package_metrics",
"package_push",
"package_register",
"package_release",
"package_update",
],
description="foo",
ttl=1800,
email=email,
password=password,
)
except errors.StoreServerError as server_error:
if "twofactor-required" in server_error.error_list:
otp = click.prompt("OTP")
c.login(
permissions=[
"package_access",
"package_manage",
"package_metrics",
"package_push",
"package_register",
"package_release",
"package_update",
],
description="foo",
ttl=1800,
email=email,
password=password,
otp=otp,
)
Run¶
Run the saved python module to login:
$ python snap_store_login_ubuntu_one.py