API

Mirage Last.fm

Linking a Last.fm account, who sees your listening, and everyone's activity.

See Mirage. You link your Last.fm account through Last.fm's sign-in (POST me/lastfm, then Last.fm sends you back to the Mirage app with a token), or by username alone for public listening. What you're playing then shows as your activity to whoever your visibility allows, live over the socket as activity events; POST activities loads it for the people a screen shows, and users/:userId/lastfm gives someone's week of top artists.

Every route below, with its parameters, request and response, errors and samples, is in the API reference.

RouteWhat it does
GET /v1/messaging/me/lastfmYour linked Last.fm account (account: username, profile link, verified, when linked, visibility, showActivity, problem), or null, and which ways of linking work here (available.signIn, available.username).
POST /v1/messaging/me/lastfmStarts linking your Last.fm account: url is Last.fm's approval page, which sends you back to the Mirage app with a token (a one-time state, good for 10 minutes). app: the phone app's id, whose return page hands the token to the app.
POST /v1/messaging/me/lastfm/callbackFinishes linking with what Last.fm sent back (state, token), for the person who started: the token becomes a session key (auth.getSession), kept sealed. A Last.fm account links to one person; this replaces anyone else's unverified link to it.
PUT /v1/messaging/me/lastfm/usernameLinks a Last.fm account by username alone (no sign-in): only public listening shows, and the link is unverified.
PATCH /v1/messaging/me/lastfmWho sees your Last.fm activity and profile section (visibility: everyone, friends or me), and whether your listening shows as your activity (showActivity).
DELETE /v1/messaging/me/lastfmUnlinks your Last.fm account and deletes its session key.
POST /v1/messaging/activitiesWhat each of userIds (up to 500) is listening to, for those whose activity you may see (activities: userId, activity with track, artist, album, album art copied into Mirage's files, the track's link, nowPlaying, playedAt); others are left out.
GET /v1/messaging/users/:userId/lastfmSomeone's listening on their profile, when you may see it: this week's top artists (topArtists: up to ten, most played first, each with name, url and pictureUrl, a copy of the artist's picture or null) and their activity. Never their Last.fm username or play counts.