Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Nintendo Switch Online Rich Presence: Difference between revisions

From GameBrew
No edit summary
No edit summary
Line 1: Line 1:
{{Infobox Switch Homebrews
{{Infobox Switch Homebrews
|title=Nintendo Switch Online Rich Presence
|title=Nintendo Switch Online Rich Presence
|image=nintendoswitchonlinerichpresence.png
|image=nsorichpresence.png
|description=Connect your Nintendo Switch playing status to Discord!
|description=Connect your Nintendo Switch playing status to Discord!
|author=MCMi460
|author=MCMi460
Line 8: Line 8:
|version=1.3.7
|version=1.3.7
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/switchhomebrews/nintendoswitchonlinerichpresence.7z
|download=https://dlhb.gamebrew.org/switchhomebrews/nsorichpresence.7z
|website=https://gbatemp.net/threads/riitag-now-supports-switch-and-3ds.633641/
|website=https://gbatemp.net/threads/riitag-now-supports-switch-and-3ds.633641/
|source=https://github.com/MCMi460/NSO-RPC
|source=https://github.com/MCMi460/NSO-RPC
|donation=
|donation=
}}
}}
{{#seo:
Nintendo Switch Online Rich Presence (NSO-RPC) is an expansion of [https://tag.rc24.xyz/ RiiTag-RPC], the gamertag created by RiiConnect24 which allows you to display your 3DS gameplay status on your Discord profile. It is a Python-based application that uses the pypresence library to send Rich Presence data to Discord.
|title=Switch Homebrew PC Tools (PC Utilities) - GameBrew
 
|title_mode=append
You don't need your console to be modded in order to use it. You'll need NSO-RPC to use it on Switch which requires an app on your desktop. You can also use [[SwitchPresence-Rewritten]] and [[PresenceClient-Rewritten Switch|PresenceClient-Rewritten]] to use it on Switch units which are online banned.
|image=nintendoswitchonlinerichpresence.png
 
|image_alt=Nintendo Switch Online Rich Presence
Also, you will need to have Discord in order to use it because this is working using Discord rich presence. You'll also need to be in a Discord with the bot. RiiConnect24 Discord has the bot.
}}
 
NSO-RPC is a project available on GitHub that allows users to display their Nintendo Switch game activity on Discord through Rich Presence. The project uses Nintendo's API and Discord's Rich Presence to fetch game information and display it on the user's Discord profile. The code is mainly written in Python and includes various functions to handle authentication, API requests, and Discord integration.
'''Note:''' The author is not liable for any sort of rate limiting Nintendo may hammer upon your network.
 
==User guide==
=== Quickstart Guide ===
Download the app from the [https://github.com/MCMi460/NSO-RPC/releases latest release] and run. Once ran, the app will ask for you to log into your Nintendo account on a web browser. There is no malicious code with intent to steal your information, but it's best to [https://github.com/MCMi460/NSO-RPC/blob/main/client/api/__init__.py review the code] for yourself.
 
Open Discord and NSO-RPC.


== Quickstart Guide ==
* You will need a secondary account that is friended with your account in order to "Target" the intended profile's presence.
Download the app from the [https://github.com/MCMi460/NSO-RPC/releases latest release] and run!<br />
* Due to changes in Nintendo's API ([https://github.com/MCMi460/NSO-RPC/issues/13 #13]), it is impossible to return a user's self presence, and instead can only send a user's friend list. Therefore, we have implemented a workaround to &quot;Target&quot; other users to provide rich presence information.
Once ran, the app will ask for you to log into your Nintendo account on a web browser. There is no malicious code with intent to steal your information, but it's best to [https://github.com/MCMi460/NSO-RPC/blob/main/client/api/__init__.py review the code] for yourself.


# Open Discord and NSO-RPC
Log in to your Nintendo account when prompted.


* You will need a secondary account that is friended with your account in order to &quot;Target&quot; the intended profile's presence. Due to changes in Nintendo's API ([https://github.com/MCMi460/NSO-RPC/issues/13 #13]), it is impossible to return a user's self presence, and instead can only send a user's friend list. Therefore, we have implemented a workaround to &quot;Target&quot; other users to provide rich presence information.
Right click on "Select this account" and press "Copy Link".


<ol start="2">
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"|
<li><p>Log in to your Nintendo account when prompted</p></li>
! colspan="3"| ▽ Image&nbsp;
<li><p>Right click on 'Select this account' and press 'Copy Link'</p></li></ol>
|-
{| style="width: 80%; margin-left:0em;"
|https://dlhb.gamebrew.org/switchhomebrews/nsorichpresence2.png
|
https://dlhb.gamebrew.org/switchhomebrews/nintendoswitchonlinerichpresence-01.png
|}
|}
<ol start="4">
 
<li><p>Paste the link in the pop-up's form and click 'Log In'</p></li>
Paste the link in the pop-up's form and click "Log In".
<li><p>Control your rich presence from the app and system tray icon</p></li></ol>
 
{| style="width: 80%; margin-left:0em;"
Control your rich presence from the app and system tray icon.
|
 
https://dlhb.gamebrew.org/switchhomebrews/nintendoswitchonlinerichpresence-02.png
{| role="presentation" class="wikitable mw-collapsible mw-collapsed"|
! colspan="3"| ▽ Image&nbsp;
|-
|https://dlhb.gamebrew.org/switchhomebrews/nsorichpresence3.png
|}
|}
== FAQ ==
<blockquote>If none of the below Qs and As help with your problem, feel free to [https://github.com/MCMi460/NSO-RPC/issues/new file an issue]. Alternatively, you can join the [https://discord.gg/pwFASr2NKx NSO-RPC Discord server] for a better back-and-forth method of communication with me!
</blockquote>
'''''Q: Do you need a Nintendo Switch Online subscription to use this app?'''''<br />
'''A:''' No, you do not. This app works whether or not you have access to online services. You will, however, need to link your Nintendo account to your user profile on your Switch.


'''''Q: My computer says that this app might have a virus! Does it?'''''<br />
=== FAQ ===
'''A:''' No. Your computer is saying that because it's a foreign executable file downloaded from the internet, so you should always be cautious about it. If you'd like, you can [[#building|build your own <code>exe</code>]].
'''Q. Do you need a Nintendo Switch Online subscription to use this app?'''
 
No, you do not. This app works whether or not you have access to online services.
 
You will, however, need to link your Nintendo account to your user profile on your Switch.
 
'''Q. My computer says that this app might have a virus! Does it?'''
 
No. Your computer is saying that because it's a foreign executable file downloaded from the internet, so you should always be cautious about it.  
 
If you'd like, you can [https://github.com/MCMi460/NSO-RPC#building build your own <code>exe</code>].
 
'''Q. You're not stealing my account/data, are you?'''
 
This project now uses [https://github.com/JoneWang/imink imink API] to provide for some authentication steps. [https://github.com/MCMi460/NSO-RPC#understanding Read more here], and be weary of any possible theft.
 
'''Q. What if I don't want to use imink?'''
 
It is possible to tweak the code and remove the API calls, then instead only use temporary tokens you have provided for authorization headers. However, this is tedious and completely up to the user to perform- as the tokens expire after 7200 seconds (two hours) and are only obtainable through methods such as [https://github.com/mitmproxy/mitmproxy mitmproxy].
 
'''Q. Do I need Discord open on my PC to use this application?'''
 
No. Discord only needs to be open for the rich presence to be active.


'''''Q: You're not stealing my account/data, are you?'''''<br />
'''Q. I can't get the program to run, what's wrong with it?!'''
'''A:''' <s>Not me, personally. You'll have to ask [https://github.com/frozenpandaman frozenpandaman] [https://github.com/frozenpandaman/splatnet2statink/wiki/api-docs (s2s)] and [https://twitter.com/NexusMine @NexusMine (flapg)]. They are responsible for some of the authentication steps.</s> This project now uses [https://github.com/JoneWang/imink imink API] to provide for some authentication steps. [[#understanding|Read more here]], and be weary of any possible theft.


<ul>
Delete the NSO-RPC folder in your Documents folder. If that doesn't work, you should run the [https://github.com/MCMi460/NSO-RPC/blob/main/client/cli.py cli.py] program and get the error data, then make an [https://github.com/MCMi460/NSO-RPC/issues issue] on GitHub.
<li><p>'''''What if I don't want to use imink?'''''</p>
<p>'''A''': It is possible to tweak the code and remove the API calls, then instead only use temporary tokens you have provided for authorization headers. However, this is tedious and completely up to the user to perform- as the tokens expire after 7200 seconds (two hours) and are only obtainable through methods such as [https://github.com/mitmproxy/mitmproxy mitmproxy]</p></li></ul>


'''''Q: Do I need Discord open on my PC to use this application?'''''<br />
'''Q. I can't link my Nintendo Account. What do I do?'''
'''A:''' No. Discord only needs to be open for the rich presence to be active.


'''''Q: I can't get the program to run, what's wrong with it?!'''''<br />
Refer to the question above.
'''A:''' Delete the NSO-RPC folder in your Documents folder. If that doesn't work, you should run the [[MCMi460/NSO-RPC/blob/main/client/cli.py|cli.py]] program and get the error data, then make an [https://github.com/MCMi460/NSO-RPC/issues issue] on Github and I'll investigate it.


'''''Q: I can't link my Nintendo Account. What do I do?'''''<br />
'''Q. My status is displaying as offline and won't change!'''
'''A:''' Refer to the question above.


'''''Q: My status is displaying as offline and won't change!'''''<br />
First, [[#Quickstart Guide|make sure that you have a secondary account linked]] and have selected your main account from the friends list.
'''A:''' First, [[#quick|make sure that you have a secondary account linked]] and have selected your main account from the friends list. If you've done that and you're still having problems with an offline status, ''make sure that both settings in your user profile (play activity and display online status settings) are set to &quot;all friends&quot;''.


''I am not liable for any sort of rate limiting Nintendo may hammer upon your network''
If you've done that and you're still having problems with an offline status, make sure that both settings in your user profile (play activity and display online status settings) are set to "all friends".


==Changelog==  
==Changelog==
'''v1.3.7'''
'''v1.3.7'''
* Add notice to help new users (@HotaruBlaze)
* Add notice to help new users (@HotaruBlaze).
* Update imink API call (@HotaruBlaze)
* Update imink API call (@HotaruBlaze).
'''v1.3.6'''
'''v1.3.6'''
* Add macOS Autostart Support (@HotaruBlaze)
* Add macOS Autostart Support (@HotaruBlaze).
* Add Github Actions (@HotaruBlaze)
* Add Github Actions (@HotaruBlaze).
* ...and various other technical fixes!
* ...and various other technical fixes.
'''v1.3.5'''
'''v1.3.5'''
* Fix for Windows documents folder not being in the default location (#51) (@HotaruBlaze)
* Fix for Windows documents folder not being in the default location (#51) (@HotaruBlaze).
* Add start in System Tray (@HotaruBlaze)
* Add start in System Tray (@HotaruBlaze).
* Fix Apple Version Regex (@HotaruBlaze and @PKBeam)
* Fix Apple Version Regex (@HotaruBlaze and @PKBeam).
* Autostart for Windows and Linux (@HotaruBlaze)
* Autostart for Windows and Linux (@HotaruBlaze).
'''v1.3.4'''
'''v1.3.4'''
* Add eShop Uri as a Discord button
* Add eShop Uri as a Discord button.
* Fix for API adaptations (#42)
* Fix for API adaptations (#42).
* Add more error logging points
* Add more error logging points.
* specify you are using bash (#47) (@North-West-Wind)
* specify you are using bash (#47) (@North-West-Wind).
'''v1.3.3'''
'''v1.3.3'''
* Allow manual entering of NSO Mobile app version number (Hopefully fixes some errors primarily on Windows)
* Allow manual entering of NSO Mobile app version number (Hopefully fixes some errors primarily on Windows).
* Change build names of Windows and Mac builds to NSO-RPC
* Change build names of Windows and Mac builds to NSO-RPC.
* Create new macOS icon (@CapnCocoa)
* Create new macOS icon (@CapnCocoa).
'''v1.3.2'''
'''v1.3.2'''
*Switch to imink API (Fixes #34)
*Switch to imink API (Fixes #34).
'''v1.3.1'''
'''v1.3.1'''
*Automatic updating to the latest headers (Fixes #29)
*Automatic updating to the latest headers (Fixes #29).
'''v1.3'''
'''v1.3'''
* Added support for re-targeting the user for rich presence
* Added support for re-targeting the user for rich presence.
* Remove dependency on Discord being open
* Remove dependency on Discord being open.
* Add "start time" field to the presence (@anthonybaldwin)
* Add "start time" field to the presence (@anthonybaldwin).
* Fix some issues with small friend widget appending (@anthonybaldwin)
* Fix some issues with small friend widget appending (@anthonybaldwin).
* Add theme changing for taskbar icon on Windows (@anthonybaldwin)
* Add theme changing for taskbar icon on Windows (@anthonybaldwin).
* Prevent errors after two hours of run time (@anthonybaldwin)
* Prevent errors after two hours of run time (@anthonybaldwin).
* Update to latest headers
* Update to latest headers.
'''v1.2'''
'''v1.2'''
* Introduce an entirely new GUI, with:
* Introduce an entirely new GUI, with:
** User profiles
** User profiles.
** Game statuses
** Game statuses.
** Friend List
** Friend List.
** Visual settings menu
** Visual settings menu.
** Dark mode
** Dark mode.
** Logout button
** Logout button.
* Update icon used for app logo, and MacOS dynamic system tray icon dependent on system theme
* Update icon used for app logo, and MacOS dynamic system tray icon dependent on system theme.
* An install.sh script for Linux users (may work?)
* An install.sh script for Linux users (may work?).
* Allow for reuse of temporary tokens
* Allow for reuse of temporary tokens.
* Add multiple Nintendo Account language support (not much of a change)
* Add multiple Nintendo Account language support (not much of a change).
* Add error logging
* Add error logging.
* Fix an error where the status would clear in an online match (PLAYING playing status)
* Fix an error where the status would clear in an online match (PLAYING playing status).
'''v1.1'''
'''v1.1'''
* Speed up in updating status
* Speed up in updating status.
* Remove excess API calls that were unnecessary
* Remove excess API calls that were unnecessary.
* Thus, removing some chances that Nintendo may consider this suspicious account activity
* Thus, removing some chances that Nintendo may consider this suspicious account activity.
* Games that make use of a 'sysDescription' (like the Nintendo Switch Online apps) will display that instead of the time played description. ([https://media.discordapp.net/attachments/829267357776085012/958528122913959977/unknown.png?width=522&height=467 Example])
* Games that make use of a 'sysDescription' (like the Nintendo Switch Online apps) will display that instead of the time played description ([https://media.discordapp.net/attachments/829267357776085012/958528122913959977/unknown.png?width=522&height=467 Example]).
'''v1.0'''
'''v1.0'''
* First Release.
* First Release.


== Credits ==
== Credits ==
This project uses the Nintendo Switch Online Mobile App API.<br />
This project uses the Nintendo Switch Online Mobile App API.
I'd like to thank:


* [https://github.com/ZekeSnider/NintendoSwitchRESTAPI NintendoSwitchRESTAPI] developer(s) (for very useful blueprint designs)
Thanks to:
* [https://github.com/frozenpandaman frozenpandaman] and his [https://github.com/frozenpandaman/splatnet2statink/wiki/api-docs s2s] API (he is the reason all of this works)
* [https://github.com/ZekeSnider/NintendoSwitchRESTAPI NintendoSwitchRESTAPI] developer(s) (for very useful blueprint designs).
* [https://github.com/JoneWang JoneWang] and his [https://github.com/JoneWang/imink imink] API. He is crucial to some of the authentication steps performed
* [https://github.com/frozenpandaman frozenpandaman] and his [https://github.com/frozenpandaman/splatnet2statink/wiki/api-docs s2s] API (he is the reason all of this works).
* [https://github.com/blackgear blackgear]'s [https://github.com/blackgear/NSOnline_API NSOnline_API] (he was integral to my understanding of <code>session_token</code> authentication)
* [https://github.com/JoneWang JoneWang] and his [https://github.com/JoneWang/imink imink] API. He is crucial to some of the authentication steps performed.
* [https://github.com/qwertyquerty qwerty] for her [https://github.com/qwertyquerty/pypresence pypresence]
* [https://github.com/blackgear blackgear]'s [https://github.com/blackgear/NSOnline_API NSOnline_API] (he was integral to my understanding of <code>session_token</code> authentication).
* [https://github.com/samuelthomas2774 samuelthomas2774] for the tremendous amounts of help he provides to this project's issues. Check out his [https://github.com/samuelthomas2774/nxapi nxapi here]!
* [https://github.com/qwertyquerty qwerty] for her [https://github.com/qwertyquerty/pypresence pypresence].
* [https://github.com/anthonybaldwin anthonybaldwin] for being awesome and helping out this project a ton!
* [https://github.com/samuelthomas2774 samuelthomas2774] for the tremendous amounts of help he provides to this project's issues. Check out his [https://github.com/samuelthomas2774/nxapi nxapi here].
* [https://github.com/anthonybaldwin anthonybaldwin] for being awesome and helping out this project a ton.


== External links ==
== External links ==
* Gbatemp - https://gbatemp.net/threads/riitag-now-supports-switch-and-3ds.633641/
* GitHub - https://github.com/MCMi460/NSO-RPC
* Github - https://github.com/MCMi460/NSO-RPC
* In-depth guide - https://github.com/MCMi460/NSO-RPC#in-depth-guide
* GBAtemp - https://gbatemp.net/threads/riitag-now-supports-switch-and-3ds.633641/

Revision as of 13:08, 11 Haziran 2023

Nintendo Switch Online Rich Presence
Nsorichpresence.png
General
AuthorMCMi460
TypePC Utilities
Version1.3.7
LicenseMixed
Last Updated2023/05/26
Links
Download
Website
Source

Nintendo Switch Online Rich Presence (NSO-RPC) is an expansion of RiiTag-RPC, the gamertag created by RiiConnect24 which allows you to display your 3DS gameplay status on your Discord profile. It is a Python-based application that uses the pypresence library to send Rich Presence data to Discord.

You don't need your console to be modded in order to use it. You'll need NSO-RPC to use it on Switch which requires an app on your desktop. You can also use SwitchPresence-Rewritten and PresenceClient-Rewritten to use it on Switch units which are online banned.

Also, you will need to have Discord in order to use it because this is working using Discord rich presence. You'll also need to be in a Discord with the bot. RiiConnect24 Discord has the bot.

Note: The author is not liable for any sort of rate limiting Nintendo may hammer upon your network.

User guide

Quickstart Guide

Download the app from the latest release and run. Once ran, the app will ask for you to log into your Nintendo account on a web browser. There is no malicious code with intent to steal your information, but it's best to review the code for yourself.

Open Discord and NSO-RPC.

  • You will need a secondary account that is friended with your account in order to "Target" the intended profile's presence.
  • Due to changes in Nintendo's API (#13), it is impossible to return a user's self presence, and instead can only send a user's friend list. Therefore, we have implemented a workaround to "Target" other users to provide rich presence information.

Log in to your Nintendo account when prompted.

Right click on "Select this account" and press "Copy Link".

Paste the link in the pop-up's form and click "Log In".

Control your rich presence from the app and system tray icon.

FAQ

Q. Do you need a Nintendo Switch Online subscription to use this app?

No, you do not. This app works whether or not you have access to online services.

You will, however, need to link your Nintendo account to your user profile on your Switch.

Q. My computer says that this app might have a virus! Does it?

No. Your computer is saying that because it's a foreign executable file downloaded from the internet, so you should always be cautious about it.

If you'd like, you can build your own exe.

Q. You're not stealing my account/data, are you?

This project now uses imink API to provide for some authentication steps. Read more here, and be weary of any possible theft.

Q. What if I don't want to use imink?

It is possible to tweak the code and remove the API calls, then instead only use temporary tokens you have provided for authorization headers. However, this is tedious and completely up to the user to perform- as the tokens expire after 7200 seconds (two hours) and are only obtainable through methods such as mitmproxy.

Q. Do I need Discord open on my PC to use this application?

No. Discord only needs to be open for the rich presence to be active.

Q. I can't get the program to run, what's wrong with it?!

Delete the NSO-RPC folder in your Documents folder. If that doesn't work, you should run the cli.py program and get the error data, then make an issue on GitHub.

Q. I can't link my Nintendo Account. What do I do?

Refer to the question above.

Q. My status is displaying as offline and won't change!

First, make sure that you have a secondary account linked and have selected your main account from the friends list.

If you've done that and you're still having problems with an offline status, make sure that both settings in your user profile (play activity and display online status settings) are set to "all friends".

Changelog

v1.3.7

  • Add notice to help new users (@HotaruBlaze).
  • Update imink API call (@HotaruBlaze).

v1.3.6

  • Add macOS Autostart Support (@HotaruBlaze).
  • Add Github Actions (@HotaruBlaze).
  • ...and various other technical fixes.

v1.3.5

  • Fix for Windows documents folder not being in the default location (#51) (@HotaruBlaze).
  • Add start in System Tray (@HotaruBlaze).
  • Fix Apple Version Regex (@HotaruBlaze and @PKBeam).
  • Autostart for Windows and Linux (@HotaruBlaze).

v1.3.4

  • Add eShop Uri as a Discord button.
  • Fix for API adaptations (#42).
  • Add more error logging points.
  • specify you are using bash (#47) (@North-West-Wind).

v1.3.3

  • Allow manual entering of NSO Mobile app version number (Hopefully fixes some errors primarily on Windows).
  • Change build names of Windows and Mac builds to NSO-RPC.
  • Create new macOS icon (@CapnCocoa).

v1.3.2

  • Switch to imink API (Fixes #34).

v1.3.1

  • Automatic updating to the latest headers (Fixes #29).

v1.3

  • Added support for re-targeting the user for rich presence.
  • Remove dependency on Discord being open.
  • Add "start time" field to the presence (@anthonybaldwin).
  • Fix some issues with small friend widget appending (@anthonybaldwin).
  • Add theme changing for taskbar icon on Windows (@anthonybaldwin).
  • Prevent errors after two hours of run time (@anthonybaldwin).
  • Update to latest headers.

v1.2

  • Introduce an entirely new GUI, with:
    • User profiles.
    • Game statuses.
    • Friend List.
    • Visual settings menu.
    • Dark mode.
    • Logout button.
  • Update icon used for app logo, and MacOS dynamic system tray icon dependent on system theme.
  • An install.sh script for Linux users (may work?).
  • Allow for reuse of temporary tokens.
  • Add multiple Nintendo Account language support (not much of a change).
  • Add error logging.
  • Fix an error where the status would clear in an online match (PLAYING playing status).

v1.1

  • Speed up in updating status.
  • Remove excess API calls that were unnecessary.
  • Thus, removing some chances that Nintendo may consider this suspicious account activity.
  • Games that make use of a 'sysDescription' (like the Nintendo Switch Online apps) will display that instead of the time played description (Example).

v1.0

  • First Release.

Credits

This project uses the Nintendo Switch Online Mobile App API.

Thanks to:

External links

Advertising: