moymo,Docs
Skip to content
Continue with Moymo

Scopes ​

A scope is one thing a member can allow your application to do. You ask for scopes in the scope parameter of the authorisation link; the member sees each in plain words on the consent screen; the token you get carries exactly those.

Names are a contract: once a scope exists its name never changes, and scopes are only ever added.

ScopeLets your applicationStatus
identifySee the member's id, username, display name and pictureAvailable
emailSee the member's verified e-mail address. Shown with a warning colour on the consent screen.Available
serversSee which servers the member is in (id, name, icon, colour, whether they own it)Available
botAdd your application's bot to a server the member manages, with the permissions they chooseAvailable
servers.joinAdd the member to a server your bot is inPlanned
library.readSee the member's game shelves, stars and Moymo Index ratingsPlanned
playtime.readSee how long the member plays each game, this week, and what they are playing nowPlanned
profile.readSee what is on the member's profile page: about text, links, badges, levelPlanned
friends.readSee who the member follows and who follows themPlanned
activity.writePost to the member's activity ("started playing")Planned
applications.commandsAdd your application's commands to a serverPlanned
webhook.incomingCreate an incoming webhook in a channel the member picksPlanned
role_connections.writeSet the member's game connections for server rolesPlanned

A planned scope has a name so that this page, the portal and the SDKs can mention it, but you cannot ask for it yet: the consent screen would promise something no endpoint does. Asking for one answers invalid_scope.

There is also one scope you cannot ask for: developer, which lets Moymo's own Developer Portal manage a member's applications. Only Moymo's own client can be given it.

What a token is, and is not ​

An access token acts as the member for the scopes it carries and for nothing else. It works on the App API and nowhere else; it cannot reach the member's settings, library or messages unless a later scope says so, and it can never touch the account's security (password, sessions, deletion).

For example, with identify alone:

RequestAnswer
GET /api/app/v1/users/@meThe member: id, username, display_name, avatar. No email.
GET /api/app/v1/users/@me/servers403: the token does not have the servers scope.

Asking for little ​

Ask for the least you need. The member sees the list, and a longer list is a reason to say no. If you need more later, send the member through the flow again with the larger list. The screen shows the whole list, and says so when they have already allowed all of it.

The wiki is for Moymo's members and developers. Something wrong or missing? Use "Suggest a change" on any page.