n
pip install PSNAWP
PyPI:https://pypi.org/project/PSNAWP/
閱讀文件:https://psnawp.readthedocs.io/en/latest/
警告
該程式庫是 PlayStation Network (PSN) 的非官方和逆向工程 API 包裝器。它是基於PSN Android應用程式的逆向工程開發的。 API 包裝器 (>= v2.1.0) 將自我速率限制為每 15 分鐘 300 個請求。但是,不要使用此 API 發送批量請求,這一點仍然很重要。過度使用 API 可能會導致您的 PSN 帳戶被暫時或永久禁止。
您還可以建立一個專用帳戶來使用該庫,這樣在最壞的情況下您也不會失去對主帳戶以及視訊遊戲和進度的存取權。
首先,您需要取得 npsso <64 字元代碼>。您需要按照以下步驟操作
https://ca.account.sony.com/api/v1/ssocookie
{ "npsso" : " <64 character npsso code> " }
此 npsso 程式碼將在 api 中用於身份驗證目的。從 npsso 產生的刷新令牌持續約 2 個月。之後,您必須獲得新的 npsso 令牌。如果刷新令牌到期時間還剩不到 3 天,機器人將列印一條警告。
以下是有關如何使用該庫的快速範例
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" ])
注意:如果您想建立 psnawp 的多個實例,您需要從單獨的 PSN 帳戶取得 npsso 程式碼。如果您使用相同帳戶產生新的 npsso,您先前的 npsso 將立即過期。
歡迎所有錯誤轉送和功能請求,儘管我是製作 python 庫的新手,所以可能需要一段時間才能實現某些功能。如果我正在做一些非常規方式的事情,歡迎提出建議。
該項目無意用於垃圾郵件、濫用或任何此類行為。不認可將本項目用於這些目的。使用此 API 包裝器建立應用程式時請記住這一點。
該專案包含來自 PlayStationNetwork::API 和 PSN-PHP Wrapper 的程式碼,並已翻譯為 Python。另外,特別感謝 @andshrew 記錄 PlayStation Trophy 端點。所有許可證都包含在此存儲庫中。