Gigya Job Openings

gm.getChallengeConfig JS

Skip to end of metadata
Go to start of metadata

Description

 

This method retrieves the configuration of specified challenges. The method returns the list of challenges, their levels and the associated action descriptions. Note: only active challenges and actions are returned.
 

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.getChallengeConfig.

 

Syntax

 

 

Parameters

The following table lists the available parameters:

RequiredNameTypeDescription
includeChallengesstringChallenges 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.
excludeChallengesstringChallenges 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.
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.

 

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.
challengesArrayAn array listing the challenges. Each challenge is represented by an object that includes the following fields:
  • challengeID - the unique ID of the challenge
  • name - the name of the challenge
  • description - the description of the challenge
  • enabled - indicates whether the challenge is enabled or not
  • enableTimeWindow - indicates whether to a "time window" in which the challenge is active is defined
  • startDate - the start date of the "time window" in which the challenge is active
  • endDate - the end date of the "time window" in which the challenge is active
  • hideUntilFirstLevel - indicates whether the specified challenge is hidded from being displayed in any of the GM plugins if the user hasn't yet achieved at least one level 
  • hideUnlockedBadges - indicates whether the unlocked badges are hidden from the user when not in the defined time window
  • actions - an array that holds the action IDs that are listed in the challengeActions array 
  • challengeActions an array of action objects associated with the challenge. Each action is represented by an object that includes the following fields:
    • actionID - the unique ID of the action
    • points - the number of points a user earns for performing this action
    • lifetimeCap - the set amount of times that performing this action awards the user points
    • source - the API key of the site to which the action belongs
  • enableVariantTemplates - indicates whether the use of challenge variants is enabled
  • levels - an array of levels. Each level is represented by an object that includes the following fields:
    • level - the level ID
    • points - the number of points the user needs to earn in order to reach ("unlock") the level
    • title - the title of the level
    • description - the description displayed for the level
    • badgeURL - the URL of the icon representing the level badge
    • lockedBadgeURL - the URL of the icon representing the locked level badge
    • actionURL - a URL to which a user can be redirected to perform an action and earn points.

You may find more information about level fields in the Adding a New Level section of the Game Mechanics Guide. You may find more information about challenge fields in the Challenge Settings section of the Game Mechanics Guide

 

Code Sample

function printResponse(response) {
    if ( response.errorCode == 0 ) {             
        if ( null!=response.challenges && response.challenges.length>0) {        
            var msg = 'The challenges are:\n\n';        
            for (var index in response.challenges) {
                var currChallenge = response.challenges[index];
                msg += "Challenge - " + currChallenge['<font>name</font>']+ " : " +   currChallenge['<font>description</font>'] + "\n" ;                 
            }            
            alert(msg);
        }
        else {
            alert('No data returned');
        }
    }
    else {
        alert('Error :' + response.errorMessage);
    }
};

var params = { 
	callback:printResponse
};

gigya.gm.getChallengeConfig(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.