MCMi460/NSO-RPC

Nintendo Switch Online API does not return Presence data

MCMi460 opened this issue · 7 comments

Effectively a repost of nxapi's issue - /v3/User/ShowSelf (and apparently /v3/Account/Login and /v3/Account/GetToken) are failing to return Presence object data.

@samuelthomas2774 It appears that /v3/Account/Login does not return the user's Presence data on the official Nintendo Online Mobile app either (checked through mitmproxy)- it seems that Nintendo has changed something in their API to prevent the user from fetching their own Presence?

As @samuelthomas2774 stated above, it is unlikely that the original use of this app will be supported for a prolonged, or indefinite, period of time. Until then, I will start implementing an alternative method to displaying your status which will require more than the initial 'login and play' NSO-RPC was known for.


What will change?

Since Nintendo has dropped support of sharing a user's self status (possibly from noticed use of nxapi and this app?), we will have to resort to a secondary method of supplying a user their Presence: Receiving it as a friend's Presence. As one might note, the current version of the app still displays the user's friends as online, along with Presence data. As a backup solution, we could just require the user to login as a subservient Nintendo account already friended with the intended one for Presence data. Since /v3/Friend/List is unlikely to ever be compromised as the actual Nintendo Online Mobile app has a section with friends data, we can just fetch the intended user's Presence data with a friend account's Friend List.
This was actually my first method of achieving the user's Presence data before I knew you could retrieve it from /v3/Account/Login (and subsequently, /v3/User/ShowSelf).

When will this change be introduced?

Give me a week or so. Until then, the app will not work on its own for anything other than displaying friend's data. I'm sorry for the inconvenience.

This thread will be closed with the introduction of the new method.

I've recently pushed an update to the development branch.
Commit b8a272f should allow for re-targeting the focused user, meaning one can simply use a friend account to receive their status. This is a workaround to the drop of support Nintendo's API changes caused.
I'm sorry for taking this long to fix this.

I am going to keep this issue open until I am 100% certain there are no issues with the current build.
Thank you for your patience.

Release 1.3 has been published today, so I'm going to finally close this issue. Thank you all for waiting!

Hii! I was wondering if this is still a common thing? It seems to be closed, but it's happening for me.
Do you have any workaround ideas? I was going to create another account to use for the app, and use my actual account in my friends list, but I then discovered I couldn't add myself as a friend, as I needed ANOTHER Switch to do that.
EDIT: Just reread the README file, and now I understand what that part meant. Okay, so, if doing this is what you're meant to do for this app, do you know how to send your main account a friend request with the secondary one?

Hii! I was wondering if this is still a common thing? It seems to be closed, but it's happening for me.

The issue is Nintendo removed the ability to get your own presence data from their API. This issue is closed because it's not something that can be 'fixed' by anyone else. (See samuelthomas2774/nxapi#1 for more information on this.)

Do you have any workaround ideas? I was going to create another account to use for the app, and use my actual account in my friends list, but I then discovered I couldn't add myself as a friend, as I needed ANOTHER Switch to do that.
EDIT: Just reread the README file, and now I understand what that part meant. Okay, so, if doing this is what you're meant to do for this app, do you know how to send your main account a friend request with the secondary one?

You don't need another console. You can just copy your main account's friend code (from your console, or Nintendo's app, nxapi or NSO-RPC), then go to the secondary account and send a friend request to your main account, then go back to that account and accept it, all from one console. You should be able to remove the secondary user from the console after that if you're not going to use it for anything else.