Developer Portal#

Note

The Rave Developer Portal lets you manage your Rave-enabled applications. You can create new applications and configure them using the portal.

To integrate Rave into your mobile application, you need to create an application in your Rave Developer Portal. An application key will be created for each application created in the portal, which you will use when configuring Rave in your application. You may choose to create multiple applications in the portal for use with a single application since it may be helpful to have separate Rave applications for testing, staging, and production purposes.

The Rave Developer Portal also allows you to configure the following for each application

  • Achievements

  • Downloadable application configuration bundles

  • Gifts

  • Leaderboards and Tournaments / Timed Leaderboards

  • Friends and Followers lists

Creating an Application#

  1. Log in to your Rave Developer Portal

  2. Select the “Apps” tab and click on the “Add new app” icon

_images/add_app.png
  1. Specify a unique application name and click the “Add New App” button

  2. Make note of the application key that is assigned to your application. It is a 32-digit hex number that you will need when configuring the SDK.

You should now see the new application in the application list.

Configuring an Application#

To change any application settings, click on the “Configure app” button for the application.

_images/configure_app.png

Application Settings and Third-Party Integrations#

Note

If you plan on using Facebook, or Google integration in your application, you need to provide some information about the applications you have created on those platforms for use with your Rave application.

  1. Click the “Edit application settings” button

  2. Make the changes you want to the configuration

  3. Click the “Save” button

_images/edit_app.png

Setting

Description

Application title

The name of the application. The length is limited to 100 characters.

Application description

An in-depth description of the application. The length is limited to 1024 characters.

Facebook application ID

The Facebook application ID associated with your mobile application. If you are using Facebook in your Rave-enabled application, you should specify the Facebook application ID.

Google client ID

The Google client ID associated with your mobile application. If you are using Google in your Rave-enabled application, you must specify the Google client ID and secret.

Google client secret

The Google client secret associated with your mobile application. If you are using Google in your Rave-enabled application, you must specify the Google client ID and secret.

User value scope

Selects the scope for profile images and display names in the application. If the ‘app’ option is chosen, display names and profile images set in the app will only be used in this app. If the ‘global’ option is selected, display name and profile image are shared across all other apps that have ‘global’ scope selected.

Achievements#

Select the “Achievements” tab on the left side of the screen to manage achievements. A list of the achievements defined for the application will be displayed.

_images/app_achievement.png

Settings#

The following settings are available when adding and modifying achievements.

Setting

Description

Required

Achievement name

The name for the achievement that will be shown to your application users. The length is limited to 255 characters.

Yes

Achievement key

A unique identifier in the context of your application that identifies the achievement. This value should not be changed once it has been set. The key is what you will use to reference a particular achievement in your application code. The length is limited to 100 characters.

Yes

Description

A description that provides more detail on the use of the achievement. The length is limited to 255 characters.

No

Order displayed

Determines the place of the achievement in the achievement list. This order determines what the next achievement is for a user based on the highest-numbered achievement that they have completed. This must be a positive integer.

Yes (automatically set when adding an achievement)

Visible

Sets whether an achievement is visible in the application. Achievements that are not visible will not show up in the achievement list, cannot be referenced individually, and cannot be marked as achieved.

Yes

Adding an Achievement#

  1. Click the “Add an achievement” button

  2. Specify an achievement name, key

  3. Click the “Save” button

Modifying Achievement Settings#

  1. Click the “Modify” button for the achievement that you want to modify

  2. Modify the settings you wish to change, keeping in mind the restrictions outlined in the “Settings” section

  3. Click the “Save” button

Deleting an Achievement#

  1. Click the “Delete” button for the achievement that you want to delete

  2. Confirm that you want to delete this achievement

Configuration Bundles#

Configuration bundles contain updated resources that can be uploaded to the portal and subsequently downloaded by applications, allowing remote updating of the application’s look and feel. For more information on how to create configuration bundles, see the Rave Developer Portal section.

Select the “UI Resource Bundles” tab on the left side of the screen to manage configuration bundles. A list of the uploaded configuration bundles for the application will be displayed.

_images/app_configuration_bundles.png

Application Version Filtering#

Since your application may have different resource bundle requirements as it evolves, the option to only use an uploaded bundle for a specified application range exists. If you want an uploaded resource bundle to be used with all application versions, do not specify a min or max version when uploading the bundle.

The Rave SDK automatically derives the application version number from your application. The source of the version number is platform dependent, with the sources for each platform as listed below:

  • iOS: BundleVersion in Info.plist

  • Android: android:versionName set in the <manifest> element of the manifest file or the Gradle build file

The expected version number format is a two-period-separated list of positive integers, e.g. 4.1.2. If your version number does not adhere to that exact format, the following rules are applied to derive Rave’s version of the application number:

  • A version string is truncated at the first character not in the set [0-9.]. A version string is also truncated if consecutive periods are encountered For example, all of the following strings would be interpreted as version 1.2.0: 1.2.0-beta, 1.2.0a, 1.2a, 1.2..3

  • A version string with a leading period is prepended with 0. For example, all of the following would be interpreted as version 0.6.0: 0.6, .6, .6.0

  • A trailing period in a version string is ignored.

Settings#

The following settings are available when adding and modifying achievements.

Setting

Description

UI Bundle name

A name to reference the configuration bundle in the portal, e.g. “Holiday app skin”

UI Bundle file

Use this to locate the resource file locally on your computer for upload to the portal

Min version

The minimum app version that the bundle can be applied to.

Max version

The maximum app version that the bundle can be applied to.

Supported devices

Indicates which device types this bundle can be downloaded by (iOS small = iOS phone and iPod, iOS large = iPad)

Uploading a Configuration Bundle#

  1. Click the “Add New UI bundle” button

  2. Specify a name for the bundle

  3. Select the resource file to upload

  4. Click the “Add” button

Attention

An uploaded bundle is never automatically set as the current active bundle. To have an uploaded bundle be available for download, you must set it to be active. This allows you to upload bundles before you actually want them to be downloaded by devices.

Activating a Configuration Bundle#

  1. Click the “Modify” button for the bundle that you want to activate

  2. Select the device types in the “Set current for” list that you want to activate it for

  3. Click on the “Save” button

After activating a configuration bundle, you will see icons in the “Current” column reflect which device types it is active for.

Deleting a Configuration Bundle#

  1. Click the “Delete” button for the configuration bundle that you want to delete

  2. Confirm that you want to delete this configuration bundle

Gifts#

Select the “Gifts” tab on the left side of the screen to manage gifts. A list of the gifts defined for the application will be displayed.

_images/app_gift.png

Settings#

The following settings are available when adding and modifying gifts.

Setting

Description

Required

Gift name

The name for the gift that will be shown to your application users. The length is limited to 255 characters.

Yes

Gift key

A unique identifier in the context of your application that identifies the gift. This value should not be changed once it has been set. The key is what you will use to reference a particular gift in your application code. The length is limited to 100 characters.

Yes

Can be requested

Sets whether the gift can be used in a request, where one user requests it from another user

Yes

Can be gifted

Sets whether the gift can be directly given to another user

Yes

Adding a Gift#

  1. Click the “Add a gift” button

  2. Specify a gift name, key, and what type of gift it is

  3. Click “Save”

Modifying Gift Settings#

  1. Click the “Modify” button for the gift that you want to modify

  2. Modify the settings you wish to change, keeping in mind the restrictions outlined in the “Settings” section

  3. Click “Save”

Deleting a Gift#

  1. Click the “Delete” button for the gift that you want to delete

  2. Confirm that you want to delete this gift

Leaderboards and Tournaments / Timed Leaderboards#

Click on Settings for your app, and select the “Leaderboard” tab to manage leaderboards. A list of the leaderboards defined for the application will be displayed. Leaderboards are sorted by their “ordering” value. Leaderboards that are not configured to be visible are listed after the visible leaderboards.

_images/app_leaderboards_list.png

Settings#

The following settings are available when adding and modifying leaderboards.

Setting

Description

Required

Value type

Leaderboard name

The name for the leaderboard that will be shown to your application users. The length is limited to 255 characters.

Yes

A string

Leaderboard key

A unique identifier in the context of your application that identifies the leaderboard. This value should not be changed once it has been set. The key is what you will use to reference a particular leaderboard in your application code. The length is limited to 100 characters.

Yes

A string

Description

A description that provides more detail on the use of the leaderboard. The length is limited to 255 characters.

No

A string

Score ordering

Determines whether the leaderboard considers higher or lower scores to be better scores. Once this value has been selected, it should not be changed if any scores have been submitted to the leaderboard.

Yes

“asc” for higher-is-better, “desc” for lower-is-better

Reset frequency

Specifies the interval at which the leaderboard should be reset. This parameter should not be set at all for leaderboards that are never meant to be reset (all time leaderboards)

No

Dropdown selection

Schedule start

Date when the leaderboard begins. Prior to this date submitting a score to this leaderboard will result in error 478 from the server stating: “The leaderboard is read only.”

No

Date (dd/mm/yyyy)

Schedule end

Date when the leaderboard ends. After this date submitting the score to this leaderboard will result in error 478 from the server stating: “The leaderboard is read only.”

No

Date (dd/mm/yyyy)

Visible

Sets whether a leaderboard is visible in the application. Leaderboards that are not visible will not show up in the leaderboard list, cannot be referenced individually, and cannot have scores submitted to them.

Yes

“true”, “false”

Adding a Leaderboard#

  1. Click the “Add a leaderboard” button

  2. Specify a leaderboard name and key

  3. Optionally specify a description and set the score order, reset frequency and schedule.

  4. Select the “Visible” checkbox if you want the leaderboard to be available immediately in your application

  5. Click “Save”

Modifying Leaderboard Settings#

  1. Click the “Modify” button for the leaderboard that you want to modify

  2. Modify the settings you wish to change, keeping in mind the restrictions outlined in the “Settings” section

  3. Click “Save”

Deleting a Leaderboard#

  1. Click the “Delete” button for the leaderboard that you want to delete

  2. Confirm that you want to delete this leaderboard

Download Leaderboards#

You can download a CSV file that contains all scores submitted so far to a leaderboard. For leaderboards with a reset schedule the CSV file will contain all scores submitted since the last reset.

To download the list of leaderboard scores, click (…) to find Download / Upload menu and select Download.

_images/leaderboard_uploaddownload.png

Upload Leaderboards#

You can pre-populate a leaderboard with scores by uploading a CSV with scores. In order to do that, prepare a CSV file with rows with values for the following columns:

  • Position: Integer that defines position on the leaderboard

  • Score: Numerical value for the score

  • Name: Name of the user

  • ID: Rave ID of the user. If you leave this value empty the system will assign an arbitrary Rave ID

Example of CSV can be seen below

_images/upload_csv.png

Tools#

Select the “Tools” tab in the main navigation tab to access tools that help you manage and troubleshoot your apps.

User info#

The “User Info” tool lets you view information about Rave users that have used at least one of your applications. You can look them up either by specifying their Rave ID, which is a 32-digit hex number, or one of their FB UIDs.

Leaderboard Management#

The “Leaderboard Management” tool lets you remove scores from leaderboards. The steps to remove one or more scores for a user are:

  1. Select the app from which you want to delete scores from the drop-down menu

  2. Enter the Rave ID, which is a 32-digit hex number, for the user

  3. Click the “Get leaderboard info” button. Scores for all leaderboards that the user has submitted a score will be displayed

  4. Delete individual scores by clicking the “Delete” button next to them or click the “Delete all” button to delete all of the user’s scores in the application

Settings#

2-Factor Authentication#

Two-factor authentication (2FA) provides an additional layer of security for your Portal account, requiring a second form of verification during sign-in. The portal utilizes the Time-Based One-Time Password (TOTP) method for this purpose. To activate 2FA for your account, follow the steps outlined below:

  1. Navigate to Settings > 2-Factor Authentication in the main navigation tab.

  2. Within the 2-Factor Authentication section, click on Enable Authenticator App.

  3. Follow the instructions within the popup to set up your second verification method.

Note

Once 2FA is enabled, you’ll be required to provide the 6-digit code as a verification step every time you sign in.

Managing Backup Codes#

Backup codes provide an alternative way to verify your identity if you can’t access your second verification method. They are essential for maintaining access to your account.

To view or regenerate your backup codes:

  1. Under 2-Factor Authentication section, click Backup Codes.

  2. In the popup, you can confirm your identity and view your codes. There is also an option to download these codes for safekeeping.

  3. If you wish to create a new set of backup codes, click on Generate new codes.

Warning

It’s critical to keep your backup codes in a secure yet easily accessible location. If you lose access to your 2FA method and don’t have your backup codes, the only way to regain access to your account is by having a portal admin disable your 2FA. Once disabled, you will need to set up 2FA again.

Credentials#

The Credentials page (accessed via Settings > Credentials) allows the management of API tokens and OAuth 2.0 client IDs, which are used as a form of authentication with the Portal API and server-to-server APIs respectively.

API Tokens#

API tokens authenticate requests to the Portal API. Further details on the Portal API are available in the REST API section.

To generate an API token:

  1. Go to Settings > Credentials.

  2. Click Add new token.

  3. Provide a unique and descriptive identifier for the token.

  4. Click Add.

  5. The token will be displayed right after creation. Ensure you copy this token and store it in a secure location, as this is the only time it will be shown. If lost, the token cannot be recovered and you will need to generate a new one. For security reasons, lost or compromised tokens should be promptly deleted from the Portal.

_images/credentials_api_tokens.png

OAuth 2.0 Client IDs#

OAuth 2.0 client IDs serve as credentials for server-to-server APIs.

To create a new OAuth 2.0 client ID:

  1. Navigate to Settings > Credentials in the main navigation tab.

  2. Click Add OAuth client ID.

  3. Provide a descriptive name for the OAuth client.

  4. Click Add.

  5. Once the OAuth client is created, locate it in the list. Click Modify to view detailed information, including the client ID and Secret. The client secret can also be reset if necessary.

Note

Be sure to securely store your API tokens and OAuth 2.0 client IDs/Secrets.

API#

Certain API settings can be configured directly through the Developer Portal and are applied on a per-customer-environment basis. To adjust these settings, follow these steps:

  1. Navigate to Settings > API in the main navigation tab.

  2. Locate the setting you wish to modify.

  3. Enter or select the new desired value.

  4. Once you are done with the changes, click Apply.

  5. A popup window will appear to review your changes. Please carefully double-check the changes to be applied.

  6. If all the changes are correct, click Confirm to finalize the modifications.

Note

API settings are not application-specific. Any changes will affect all applications associated with your account.

The following settings are available:

Setting Name

Description

Default Value

Email Confirmation Required

Set whether a new user account must confirm their email address before they can use their account.

Disabled

Email Confirmation Method

Whether users confirm their email by clicking on a provided link or by entering a unique confirmation code sent directly to their email address.

Standard (Link)

Session Renewal

Specifies whether existing sessions that haven’t expired can be renewed in order to extend its expiration time by the value set by Session Expiration.

Disabled

Session Expiration

The amount of time in seconds an Authenticated Rave User Session will live before it expires. After the session expires, a user must re-authenticate. A value of 0 disables the feature.

0s

Token Expiry Duration

The amount of time in seconds a Rave User Token is valid for before it expires and is no longer usable.

3600s

Lockout Max Attempt Count

The number of failed password login attempts made within the Lockout Time Window that will cause a user’s account to become locked. A value of 0 disables the user account lockout value.

N/A

Lockout Time Window

The length of time in seconds in which the system will count the number of failed password attempts until it reaches the Lockout Max Attempt Count value. If number of attempts equal or exceed that number within this time window, a user’s account will be locked.

300s

Lockout Period

The length of time in seconds it takes for a user account that is locked from too many failed attempts to be automatically unlocked. The user’s account will be unlocked after this value is added to the locked_at time of a user’s account. A value of 0 will prevent the account from automatically unlocking. User’s can then only unlock the account by contacting support or successfully reset their password.

N/A

Lockout Send Email

Specifies whether a user who’s account is locked out receives an email notification detailing the lockout and how to reset it.

Enabled

Lockout Expose Status

Specifies whether the API should expose details about a user’s lockout status. While this may make it easier for developers to detect problems with user’s being locked out, it can aid in attackers having knowledge that can help automate their attacks.

Enabled

Email Sender

The from address that is applied to emails send by the ClientAPI. This value should be an email that is recognized by the configured email sending service account used (SendGrid account).

Empty

Mail Subject Header

A text that will appear at the beginning of the subject of every email sent.

Empty

Forgot Password URI

A URI string that overrides the default Rave forgot password HTML pages. If this value is set, instead of sending the user to the Rave HTML page to reset their password, an email will be sent with a deep link to this URI. The deep link will include the reset password code.

Empty

Reset Password Redirect URI

A URI string that overrides the default Rave HTML page after a successful password reset. If this value is set, instead of the API rendering a success HTML page, the service will redirect a user to this custom URI.

Empty

CORS Origins

List of URIs that are allowed to perform cross-site posting to the Rave API. This value will be set in the access-control-allow-origin response header.

Empty

User Password Validators

List of rules that determine the requirements for creating passwords. By defining rules, the system will enforce stronger security measures for passwords. Please note that rule changes may impact existing user accounts.

Empty

Passkey Relying Party ID

A unique identifier for the Passkey Relying Party. It must match the browser’s request origin or be a ‘registrable suffix’ of it.

Empty

Passkey Relying Party Name

A readable and user-friendly name used to identify the Passkey Relying Party.

Empty

Passkey Verify Timeout

The duration in seconds within the user is required to complete the passkey verification process.

60

Passkey Origins

List of allowed URIs where the Passkey Verification will take place. Values should be a fully qualified domain names (FQDN).

Empty

Warning

Be careful when modifying these settings. Changes may significantly impact the behavior of your applications.

Note

After applying changes, it may take a few minutes for these to propagate to your applications. Expect a slight delay for your changes to take effect.

API Settings History#

The Portal keeps a history of all changes made to your API Settings. This enables you to view what changes were made, who made them, and at what time. Additionally, you have the ability to revert back to a point in your change history. To access the configuration history, navigate to the ‘API’ tab, and then click on ‘History’ right below the main navigation tab.

Reverting to a Past Configuration#

You can revert your API settings to any previous state in your change history. However, keep in mind that reverting will also undo any changes made after that specific point in history. To revert to a past configuration, follow these steps:

  1. Navigate to API Settings History.

  2. Find the history point you wish to revert to and click View.

  3. Take time to carefully review the changes that will be reverted.

  4. If you are certain about reverting, click Revert to apply the modifications.

Warning

Reverting to a past configuration will undo all changes made after that point. Ensure you review carefully all changes that will be applied before proceeding.

Templates#

Web templates#

The Web templates customization allows tailoring the appearance and content of web pages and emails within the applications. It provides flexibility for personalizing and modifying the templates according to customer specific branding and design requirements.

To get started with customizing the templates, navigate to Settings > Templates in the main navigation tab.

Downloading Current Web Templates#

You have the ability to download the most recent version of your web templates. By clicking the “Download” button, you initiate a download of a .zip file containing these templates. This feature is particularly useful if you need to back up or examine your current template setup.

Uploading New Templates#

In this section, you can upload new web templates to your environment. Through the “Upload Templates” button, you can select and upload a .zip file of new templates. The upload process is designed to automatically replace all existing template files in your environment with the new ones from the uploaded file. The functionality ensures that the uploaded files meet the specified format and file type criteria.

GitHub Integration for Automatic Deployment#

You can also automate the updating of your web templates through GitHub integration. You can fork a base assets project, generate a unique API token through the portal, and configure this token in your GitHub repository. This setup enables automatic deployment of any changes you push to a specified branch in your GitHub repository. The integration utilizes webhooks and the API token to securely update your environment directly from your repository.

Note

Templates are not application-specific. Any changes will affect all applications associated with your account.

GDPR#

GDPR regulations require that a user’s data can be completely removed when requested. To provide compliance for this, Rave provides 2 tools:

  1. Data Erasure API: allows you to delete user’s data by calling the API and passing a Rave UUID if the user requests to have their data deleted

  2. Data erasure management portal tool: In the management portal you can look up a user based on email, UUID, or Facebook UID and delete all information about this user.

GDPR API#

To use the erasure API, open Command line or Terminal and run this command:

curl \
  -H "Content-Type: application/json" \
  -H "Auth-token: <API TOKEN>" \
  -X DELETE \
  https://(URL: base_portal_url)/api/rave/user/UUID

Example:

curl \
  -H "Content-Type: application/json" \
  -H "Auth-token:bdf24e45252c491d9c3aa96bb8efba81" \
  -X DELETE \
  https://(URL: base_portal_url)/api/rave/user/03f9713462bb482681bb1290ef191266

GDPR Portal Tool#

In the management portal click Tools -> Edit Users and look up a user based on email, UUID, or Facebook UID. Once you find the correct user, your customer service rep can click the “Delete user” button to delete all information about this user.

REST API#

The Portal REST API provides you the means to manipulate application properties programmatically.

In order to use the Portal REST API you will need to authenticate your requests with the Auth-token HTTP header. An auth token is used as the value of this header. For more info on creating these tokens please see API Tokens. All requests must be made with the content type set to application/json. The general request format will be as shown below.

curl \
  -H "Content-Type: application/json" \
  -H "Auth-token: <API TOKEN>" \
  -X <METHOD>
  <OTHER OPTIONS> \
  https://manage.ravesocial.co/...

Error handling#

If an error occurs while processing a request for an endpoint, the response will contain an error message with an error code and description of the error. The HTTP status code for these error responses is 200.

{
    "error": {
        "code": 700,
        "message": "\"Content-Type: application/json\" header found, but JSON data is missing or corrupted."
    }
}

If you specify incorrect values in the URL path for requests, you may receive a response with HTTP status 404. For example, if the specified APP UUID in the path is not a 32-digit hex value, the response status would be a 404.

Leaderboards#

Leaderboards can be added and removed. See this section for a comprehensive description of the leaderboard parameters.

Add a leaderboard#

The end point POST /api/applications/<APP_UUID>/leaderboards is used to add new leaderboards for an application. The APP_UUID parameter is the UUID identifying the application. It can be found on the application overview and detail pages.

Parameter

Description

Required

Default

key

The key used to reference the leaderboard in the application.

Yes

N/A

name

The name that is visible to the end-user

Yes

N/A

description

A more verbose description of the purpose of the leaderboard

No

<Empty string>

is_asc

Sets the leaderboard ordering. If set to to true, the leaderboard is ascending and considers lower values better. If set to false, the leaderboard is descending and considers higher values better.

No

false

visible

Determines if end-users can see the leaderboard

No

true

# add a leaderboard using default settings for is_asc and visible
curl \
  -H "Content-Type: application/json" \
  -H "Auth-token: <API TOKEN>" \
  -d '{"key": "new_leaderboard", "name": "New leaderboard"}' \
  -X POST \
  https://manage.ravesocial.co/api/applications/<APP_UUID>/leaderboards

# add an ascending leaderboard that is not initially visible to end-users
curl \
  -H "Content-Type: application/json" \
  -H "Auth-token: <API TOKEN>" \
  -d '{"key": "new_leaderboard2", "name": "New leaderboard2", "is_asc": true, "visible": false}' \
  -X POST \
  https://manage.ravesocial.co/api/applications/<APP_UUID>/leaderboards

Delete a leaderboard#

The end point DELETE /api/applications/<APP_UUID>/leaderboards/<LEADERBOARD_KEY> is used to delete an existing leaderboard. The APP_UUID parameter is the UUID identifying the application. The LEADERBOARD_KEY parameter identifies the leaderboard to be deleted.

# delete a leaderboard
curl \
  -H "Content-Type: application/json" \
  -H "Auth-token: <API TOKEN>" \
  -X DELETE \
  https://manage.ravesocial.co/api/applications/<APP_UUID>/leaderboards/<LEADERBOARD_KEY>

User tokens#

User tokens can be requested by the SDK and passed to customers’ servers to enable server-to-server authentication. An endpoint is provided to delete user tokens through the portal, which can be helpful for testing and QA purposes.

Delete a user token#

The end point DELETE api/rave/user/tokens/<TOKEN> is used to delete an existing user token. The TOKEN parameter is the token to be deleted. The following errors can be returned by this endpoint:

  • 433 – The token is not valid

  • 458 – The token does not exist

# delete a user token
curl \
  -H "Content-Type: application/json" \
  -H "Auth-token: <API TOKEN>" \
  -X DELETE \
  https://manage.ravesocial.co/api/rave/user/tokens/<TOKEN>