-
-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
User data not including presence #1
Comments
NSO-RPC users have confirmed they also don't get their own presence data anymore. (#13, #11 comment) I don't think this will be fixed any time soon. Most likely Nintendo has stopped providing the current user's presence data intentionally, or there's an issue or unintentional change with the API that they don't care about as the app doesn't show the current user's presence anyway.
This change means that a separate account (with your own account added as a friend) is required to fetch your own presence. For nxapi:
For NSO-RPC users, watch this issue and wait for an update: MCMi460/NSO-RPC#13 Other options:
@MCMi460 You'll need to add something similar for NSO-RPC so a friend can be selected to share their presence (I'm guessing that was your original plan as well). Also I've published the script to export my Discord client IDs, you can fetch them from the same links I shared here, or if you install nxapi from source you can run |
Looking into this, I've noticed something, if you ever go into the account settings of your console as soon as you've started a game, it will still say that you're Offline. Play any game for a about a minute, then check back into account settings on the console, and it'll show your current game status. e.g. I've been playing a game for more than a minute while on my wifi... But, turn off the internet, and go back into the accounts settings, and now it shows offline, even though I am for sure still playing the game. What this basically shows is that there is still someway to grab self-presence data. Nintendo's recent change wasn't a break, but a deliberate change to stop the NSO app from grabbing self-presence data, since it never displayed it in app. In any case, this means there should still be a way to obtain self-presence data (without a second friend account), we just need to find the "new" (undiscovered) API request data that comes directly from the console, most likely via some network packet inspection between the router and the console. I have a hunch that the additional data that gets passed along to the API (to request self-presence data), likely requires one or more console identifiers (probably a hardware ID and OS version). For example, if we were to use a different user-agent to access the same API endpoint (which I can tell from my packet sniffing on my own network that the Switch does connect to the same endpoint from time to time), it's likely that if we use the system user-agent (see https://switchbrew.org/wiki/Network#User-Agent ):
... then we may be able to retrieve self-presence data... But I don't currently possess the knowledge or cognizance to go about working on that. |
You're right that there is (likely) a way to still get self presence data however I don't believe this test is a good proof of that. Showing as offline when you have no internet connection is expected behavior and the Switch likely just displays this the moment it detects there's no internet connection, not because of some failed self-presence request The Switch gets user account information from the BAAS server. However accessing the Switch's servers in this way is very risky. Any tiny mishap that doesn't look identical to how a console would make requests (even down to the order the request headers are in) can, and will, lead to a ban https://e0d67c509fb203858ebcb2fe3f88c2aa.baas.nintendo.com/1.0.0/users/{userID} will return an object containing a The users account ID is given during login, which you'd have to do also using the BAAS server. And in order to do that you'll have to authenticate with the DAUTH server. You're going to essentially have to migrate entirely to the Switch's account API to get self presence to work again Though I have not actually verified if that endpoint works for getting your own user data, I haven't tried it yet but I don't see why it wouldn't You can find more information about the Switch servers and their API here https://nintendo-wiki.pretendo.network/docs/servers. This is a re-hosted mirror of https://github.com/kinnay/NintendoClients/wiki which just contains some more updated information for some stuff, maintained by us at Pretendo Network, but the Switch docs should be identical. The original wiki also has a Python client to interact with these servers safely, found here https://github.com/kinnay/NintendoClients/blob/master/nintendo/baas.py |
/v3/Account/Login
,/v3/Account/GetToken
and/v3/User/ShowSelf
currently seem to be returning incorrect presence data. This object is always returned (which looks the same as the presence object for users who have never been online, or are not sharing their presence with you):/v3/Friend/List
still returns correct presence data.The text was updated successfully, but these errors were encountered: