N
pip install PSNAWP
PyPI: https://pypi.org/project/PSNAWP/
Lesen Sie die Dokumente: https://psnawp.readthedocs.io/en/latest/
Vorsicht
Diese Bibliothek ist ein inoffizieller und rückentwickelter API-Wrapper für das PlayStation Network (PSN). Es wurde basierend auf dem Reverse Engineering der PSN-Android-App entwickelt. Der API-Wrapper (>= v2.1.0) begrenzt die Rate selbst auf 300 Anfragen pro 15 Minuten. Es ist jedoch dennoch wichtig, dass Sie keine Massenanfragen über diese API senden. Eine übermäßige Nutzung der API kann dazu führen, dass Ihr PSN-Konto vorübergehend oder dauerhaft gesperrt wird.
Sie können auch ein dediziertes Konto erstellen, um diese Bibliothek zu nutzen, damit Sie im schlimmsten Fall nicht den Zugriff auf Ihr primäres Konto sowie Ihre Videospiele und Fortschritte verlieren.
Um zu beginnen, benötigen Sie npsso <64-Zeichen-Code>. Sie müssen die folgenden Schritte ausführen
https://ca.account.sony.com/api/v1/ssocookie
{ "npsso" : " <64 character npsso code> " }
Dieser NPSSO-Code wird in der API zu Authentifizierungszwecken verwendet. Das von npsso generierte Aktualisierungstoken ist etwa zwei Monate gültig. Danach müssen Sie einen neuen NPSSO-Token erhalten. Der Bot gibt eine Warnung aus, wenn der Ablauf des Aktualisierungstokens weniger als drei Tage dauert.
Im Folgenden finden Sie ein kurzes Beispiel zur Verwendung dieser Bibliothek
from psnawp_api import PSNAWP
from psnawp_api . models import SearchDomain
from psnawp_api . models . trophies import PlatformType
psnawp = PSNAWP ( "<64 character npsso code>" )
# Your Personal Account Info
client = psnawp . me ()
print ( f"Online ID: { client . online_id } " )
print ( f"Account ID: { client . account_id } " )
print ( f"Profile: { client . get_profile_legacy () } n " )
# Your Registered Devices
devices = client . get_account_devices ()
for device in devices :
print ( f"Device: { device } n " )
# Your Friends List
friends_list = client . friends_list ()
for friend in friends_list :
print ( f"Friend: { friend } n " )
# Your Players Blocked List
blocked_list = client . blocked_list ()
for blocked_user in blocked_list :
print ( f"Blocked User: { blocked_user } n " )
# Your Friends in "Notify when available" List
available_to_play = client . available_to_play ()
for user in available_to_play :
print ( f"Available to Play: { user } n " )
# Your trophies (PS4)
for trophy in client . trophies ( "NPWR22810_00" , PlatformType . PS4 ):
print ( trophy )
# Your Chat Groups
groups = client . get_groups ()
first_group_id = None # This will be used later to test group methods
for id , group in enumerate ( groups ):
if id == 0 : # Get the first group ID
first_group_id = group . group_id
group_info = group . get_group_information ()
print ( f"Group { id } : { group_info } n " )
# Your Playing time (PS4, PS5 above only)
titles_with_stats = client . title_stats ()
for title in titles_with_stats :
print (
f"
Game: { title . name } -
Play Count: { title . play_count } -
Play Duration: { title . play_duration } n "
)
# Other User's
example_user_1 = psnawp . user ( online_id = "VaultTec-Co" ) # Get a PSN player by their Online ID
print ( f"User 1 Online ID: { example_user_1 . online_id } " )
print ( f"User 1 Account ID: { example_user_1 . account_id } " )
print ( example_user_1 . profile ())
print ( example_user_1 . prev_online_id )
print ( example_user_1 . get_presence ())
print ( example_user_1 . friendship ())
print ( example_user_1 . is_blocked ())
# Example of getting a user by their account ID
user_account_id = psnawp . user ( account_id = "9122947611907501295" )
print ( f"User Account ID: { user_account_id . online_id } " )
# Messaging and Groups Interaction
group = psnawp . group ( group_id = first_group_id ) # This is the first group ID we got earlier - i.e. the first group in your groups list
print ( group . get_group_information ())
print ( group . get_conversation ( 10 )) # Get the last 10 messages in the group
print ( group . send_message ( "Hello World" ))
print ( group . change_name ( "API Testing 3" ))
# print(group.leave_group()) # Uncomment to leave the group
# Create a new group with other users - i.e. 'VaultTec-Co' and 'test'
example_user_2 = psnawp . user ( online_id = "test" )
new_group = psnawp . group ( users_list = [ example_user_1 , example_user_2 ])
print ( new_group . get_group_information ())
# You can use the same above methods to interact with the new group - i.e. send messages, change name, etc.
# Searching for Game Titles
search = psnawp . search ( search_query = "GTA 5" , search_domain = SearchDomain . FULL_GAMES )
for search_result in search :
print ( search_result [ "result" ][ "invariantName" ])
Hinweis: Wenn Sie mehrere Instanzen von psnawp erstellen möchten, müssen Sie npsso-Code von separaten PSN-Konten abrufen. Wenn Sie mit demselben Konto ein neues NPSO erstellen, läuft Ihr vorheriges NPSO sofort ab.
Alle Bug-Reposts und Funktionsanfragen sind willkommen, obwohl ich neu im Erstellen von Python-Bibliotheken bin und es daher eine Weile dauern kann, einige Funktionen zu implementieren. Vorschläge sind willkommen, wenn ich etwas mache, das eine unkonventionelle Art ist, es zu tun.
Dieses Projekt sollte nicht für Spam, Missbrauch oder ähnliches verwendet werden. Eine Nutzung dieses Projekts für diese Zwecke wird nicht genehmigt. Bitte beachten Sie dies, wenn Sie Anwendungen mit diesem API-Wrapper erstellen.
Dieses Projekt enthält Code von PlayStationNetwork::API und PSN-PHP Wrapper, der in Python übersetzt wurde. Besonderer Dank gilt auch @andshrew für die Dokumentation der PlayStation Trophy-Endpunkte. Alle Lizenzen sind in diesem Repository enthalten.