Gigya Job Openings

gm.getChallengeStatus JS

Skip to end of metadata
Go to start of metadata

Description

 

This method retrieves the current status of the user in each of the specified challenges. 
 

Note: If you plan on integrating the Game Mechanic platform, we highly recommend reading the Game Mechanics Guide. Game Mechanics is a premium platform that requires separate activation. If Game Mechanics is not part of your site package please contact your Gigya Customer Engagement Executive or contact us by filling in a support form on our site. You can also access the support page by clicking "Support" on the upper menu of Gigya's site.

 

Note: This method is also supported in our REST API. If you wish to execute this method from your server, please refer to

REST API > gm.getChallengeStatus.

 

Syntax

 

 

Parameters

The following table lists the available parameters:

RequiredNameTypeDescription
includeChallengesstringComma separated list of challenges to include in the response. The default value is '*', representing all the challenges that the site has to offer.
Note: Challenges that are listed in the excludedChallenges parameter are not displayed.
excludeChallengesstringComma separated list of challenges to exclude from the response. The default value is '' (empty string), meaning that no challenges that the site has to offer are to be excluded. 
detailsstringCan be either 'basic' or 'full'. The default value is 'basic'.
callbackfunction
A reference to a callback function. Gigya calls the specified function along with the results of the API method when the API method completes.
The callback function should be defined with the following signature: functionName(Response).
The "Response Object Data Members" table below provides specification of the data that is passed to the callback function.
contextobject
A developer-created object that is passed back unchanged to the application as one of the fields in the response object.
actionAttributesJSON objectThis parameter is used to retrieve the current status of the user according to a specific attribute, for example you can retrieve the user's status only on the "Glee" page of a site, instead of his status on the entire site. The action attribute is comprised of a single set of a key (category) and a value, e.g. {"tv-show":"glee"}. In order to use this option, you need to give action attributes to actions the user may perform on the site, such as sharing or commenting, and these action attributes will be used to filter. Read more here.

 

Response Object Data Members

FieldTypeDescription
errorCode integer The result code of the operation. Code '0' indicates success, any other number indicates failure. For a complete list of error codes, see the Response Codes and Errors table.
errorMessage string A short textual description of an error associated with the errorCode for logging purposes.
callId string Unique identifier of the transaction, for debugging purposes.
context object The context object passed by the application as a parameter to the API method, or null if no context object has been passed.
achievementsArrayAn array listing the user's achievements. Each achievement is represented by a JSON object that includes the following fields: 
  • challengeID
  • level - the level that this user reached within this challenge.
  • isNewLevel - this field's value is usually 'false'. When a user advances to the next level, the GM engine sets this field to 'true'. This way your site may inform the user of reaching a new level. Using the gm.resetLevelStatus method, you may reset the isNewLevel field's value back to 'false'.
  • pointsTotal - total accumulated points. This value cannot be less than zero.
  • points7Days - points accumulated during the past 7 days. This value cannot be less than zero.
    Note: if you redeem points using gm.redeemPoints the points will be deducted only from the pointsCurrent field (see below). The pointsTotal and points7Days fields may only accumulate and never be deducted.
  • rank - the location of the user in comparison to all other site users determined by total accumulated points (pointsTotal).
  • rank7Days - the location of the user in comparison to all other site users determined by points accumulated during the past 7 days (points7Days).
  • badgeURL - the URL of the image file of the current level's badge.
  • actionStatus - An array of action objects that are required in order to achieve the next level. The action is an object that includes the following fields:
    • actionID  - the identifier of the action
    • completed - the number of actions achieved in the current level
    • required - the total number of actions that are required in order to achieve the next level.
  • achievementsToNextLevel - Indicates how many points are required in order to achieve the next level.

 

If the details parameter in the request is set to 'full', then each achievement object will also include the following fields:
  • levelTitle
  • levelDescription
  • challengeTitle
  • challengeDescription
  • pointsCurrent - these are the points accumulated by the user minus the points redeemed by the site (using gm.redeemPoints). Always pointsCurrent <= pointsTotal. This value cannot be less than zero.
  • requiredAchievement - the name of the achievement required to reach the next level. If this challenge has one action associated with it then requiredAchievement would be the name of this action. If this challenge has more than one action associated with it then requiredAchievement would be 'points'.
  • achievementsToNextLevel - the number of achievements required to reach the next level. If this challenge has one action associated with it then achievementsToNextLevel would be the number of actions needed to be performed to reach the next level. If this challenge has more than one action associated with it, then achievementsToNextLevel would be the number of points required to reach the next level.
  • nextLevelTitle
  • nextLevelDescription
  • nextLevelLockedBadgeURL
  • nextLevelActionURL - a URL to which a user can be redirected to perform an action and earn points. You may define this URL in the Challenges Setup=>Levels Settings. Read more in the Configuration and Administration Guide.
     
Notes:
  • When the user has not reached enough points for level 1 he is considered at level 0.
  • When the user is at level 0 all the current level information fields (levelTitle and levelDescription and badgeURL) are null.

 

Code Sample

function printResponse(response) {
    if ( response.errorCode == 0 ) {             
        if ( null!=response.achievements && response.achievements.length>0) {        
            var msg = 'My achievements are:\n\n';        
            for (var index in response.achievements) {
                var currAchievement = response.achievements[index];
                msg += "Challenge - " + currAchievement['challengeTitle']+ " : " +  "Level - " +  currAchievement ['levelTitle']  +  ", Rank - " +  currAchievement ['rank']+ '\n' ;                 
            }            
            alert(msg);
        }
        else {
            alert('No data returned');
        }
    }
    else {
        alert('Error :' + response.errorMessage);
    }
};

var params = { 
	callback:printResponse,
	details: "full"
};

gigya.gm.getChallengeStatus(params); 

Notes:

  • This sample is not meant to be fully functional code. For brevity's sake, only the code required for demonstrating the API call itself is presented.
  • To run the code on your own domain, add your Gigya API key to the gigya.js URL. A Gigya API key can be obtained on the Site Dashboard page on Gigya's website. Please make sure that the domain from which you are loading the page is the same domain name that you used for generating the API key.
  • In some cases it is necessary to connect/login the user to a provider ? prior to calling the API method. You can learn more in the Social Login guide.