PSNjs
About
This is a simple Node.JS API for accessing PSN data.
This is heavily based on work by psnapi.org and gumer-psn.
Note: v0.1.x is a completely new API that is incompatible with 0.0.x. Please take care when writing your dependancies.
Installing
You can install it with the package manager
npm install PSNjs
Or clone the repository and install the dependencies
git clone https://github.com/cubehouse/PSNjs.git
cd PSNjs/
npm install
API Setup
var PSNjs = ; var psn = // PSN email and password email: "PSNEMAIL" password: "PSNPASSWORD" // debug printing debug: true // optionally store session tokens in a file to speed up future connection authfile: ".psnAuth"; // get the above user's trophiespsn;
Other Init variables
email: "PSNEMAIL" // your email password: "PSNPASSWORD" // your password debug: true // enable debug logging? requestDebug: false // enable the request library's debug output? autoconnect: false // make a PSN request immediately (make sure you use onReady if you do this) authfile: ".psnAuth" // optionally store PSN session tokens in this file { // this function will be called when the API is ready (mainly used when autoconnect is true) }
Custom Save and Load Callbacks
If you don't want to use the authfile option, you can manually write save/load functions. For example, using Redis or something instead of the filesystem.
var psn = // PSN email and password email: "PSNEMAIL" password: "PSNPASSWORD"; // load example (data should be a Base64 string)psn; // save examplepsn;
Functions
getProfile(username, callback)
Get a PSN user's profile
- username - PSN username to request
- callback - Callback function with error (false if no error) and returned data object
getMessageGroups(callback)
Get current user's message groups
- callback - Callback function with error (false if no error) and returned data object
getMessageContent(messageGroupId, messageUid, messageKind, callback)
Get data from a specific message. All this data can be found in getMessageGroups
- messageGroupId - Group ID requested message belongs to
- messageUid - Message ID to fetch
- messageKind - Kind of message (as int)
- callback - Callback function with error (false if no error) and returned data object
getLatestActivity(feed, filters, page, callback)
Get the signed-in user's activity feed
- feed - type of feed, either "feed" or "news" (optional, defaults to "news")
- filters - array of strings to filter by (optional, defaults to no filters)
- PURCHASE, RATED, PLAYED_WITH, VIDEO_UPLOAD, SCREENSHOT_UPLOAD, PLAYED_GAME, LAUNCHED_GAME_FIRST_TIME, WATCHED_VIDEO, TROPHY, BROADCASTING, LIKED, PROFILE_ABOUT_ME, PROFILE_PIC, FRIENDED, CONTENT_SHARE, STORE_PROMO, IN_GAME_POST,
- Use an empty array (or leave out argument) for all types
- page - Page of feed to load (default: 0)
- callback - Callback function with error (false if no error) and returned data object
likeActivity(storyId, dislike, callback)
Like an activity from the activity feed
- storyId - The ID of the activity we want to like
- dislike - (optional) set to true to dislike instead of like
- callback - Callback function with error (false if no error) and returned data object
dislikeActivity(storyId, callback)
Dislike an activity from the activity feed
- storyId - The ID of the activity we want to dislike
- callback - Callback function with error (false if no error) and returned data object
getNotifications(callback)
Get notifications of currently authenticated user
- callback - Callback function with error (false if no error) and returned data object
addFriend(username, callback)
Add a friend to PSN (must have received a friend request from the user)
- username - Username to add
- callback - Callback function with error (false if no error) and returned data object
removeFriend(username, callback)
Remove a friend from PSN
- username Username to remove
- callback - Callback function with error (false if no error) and returned data object
sendFriendRequest(username, message, callback)
Send a friend request to a user
- username - Username to add
- message - Message to send to user
- callback - Callback function with error (false if no error) and returned data object
getFriends(offset, limit, friendType, callback)
Get the user's friend list
- offset - (optional) Index to start friend list
- limit - (optional) Maximum limit of friends to fetch
- friendType - (optional) Type of friends to filter by (accepts friend, requesting or requested)
- callback - Callback function with error (false if no error) and returned data object
generateFriendURL(callback)
Generate a friend URL you can give to people to add you as a friend.
- callback - Callback function with error (false if no error) and returned data object
getUserTrophies(offset, limit, username, callback)
Fetch trophy data for the logged in user (and optionally compare to another user)
- offset - (optional) Starting index of trophy data
- limit - (optional) Maximum number of titles to fetch
- username - (optional) PSN ID to compare trophies with
- callback - Callback function with error (false if no error) and returned data object
getTrophyGroups(npCommunicationId, username, callback)
Get list of trophy groups for a title (eg. base game + DLC packs)
- npCommunicationId - Title ID
- Username - (optional) Username to compare trophies to
- callback - Callback function with error (false if no error) and returned data object
getTrophies(npCommunicationId, trophyGroupId, username, callback)
Get a title's trophies (supplying a trophy group), optionally comparing to another user.
- npCommunicationId - Title ID
- trophyGroupId - Trophy Group ID (from getTrophyGroups)
- Username - (optional) Username to compare trophies to
- callback - Callback function with error (false if no error) and returned data object
getTrophy(npCommunicationId, trophyGroupId, trophyId, username, callback)
Get data on a specific trophy in a title with supplied trophyId. Optionally compare to a username.
- npCommunicationId - Title ID
- trophyGroupId - Trophy Group ID (from getTrophyGroups)
- trophyId - Trophy ID
- Username - (optional) Username to compare trophies to
- callback - Callback function with error (false if no error) and returned data object