@grabjs/superapp-sdk
    Preparing search index...

    Class ProfileModule

    JSBridge module for accessing user profile information.

    Provides access to user profile data such as email verification. This code must run on the Grab SuperApp's WebView to function correctly.

    ES Module:

    import { ProfileModule } from '@grabjs/superapp-sdk';
    const profile = new ProfileModule();

    CDN (UMD):

    <script src="https://cdn.jsdelivr.net/npm/@grabjs/superapp-sdk/dist/index.js"></script>
    <script>
    const profile = new SuperAppSDK.ProfileModule();
    </script>

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Methods

    Constructors

    Properties

    MINIMUM_VERSION: Version = ...

    Methods

    • Fetches the user's email address from their Grab profile.

      Returns Promise<FetchEmailResponse>

      The user's email address if available.

      This method requires Grab app version 5.399 or above. If called on an older version, it will return a 426 (Upgrade Required) response.

      Simple usage

      import { ProfileModule, isSuccess, isErrorResponse } from '@grabjs/superapp-sdk';

      // Initialize the profile module
      const profile = new ProfileModule();

      // Fetch the user's email
      const response = await profile.fetchEmail();

      // Handle the response
      if (isSuccess(response)) {
      console.log('User email:', response.result.email);
      } else if (isErrorResponse(response)) {
      switch (response.status_code) {
      case 403:
      console.log('No permission to access user profile');
      // Trigger IdentityModule.authorize() for scope 'profile email', then reload via ScopeModule.reloadScopes() and try again
      break;
      case 426:
      console.log('User needs to upgrade the app');
      // Advise user to upgrade app
      break;
      default:
      console.error(`Error ${response.status_code}: ${response.error}`);
      }
      } else {
      console.error('Unhandled response');
      }
    • Verifies the user's email address using a one-time password (OTP).

      Parameters

      Returns Promise<VerifyEmailResponse>

      Confirmation of whether the email verification was successful.

      This method requires Grab app version 5.399 or above. If called on an older version, it will return a 426 (Upgrade Required) response.

      Simple usage

      import { ProfileModule, isSuccess, isErrorResponse } from '@grabjs/superapp-sdk';

      // Initialize the profile module
      const profile = new ProfileModule();

      // Verify email with OTP
      const response = await profile.verifyEmail({
      email: 'user@example.com',
      otp: '123456'
      });

      // Handle the response
      if (isSuccess(response)) {
      console.log('Email verified successfully');
      } else if (isErrorResponse(response)) {
      switch (response.status_code) {
      case 403:
      console.log('No permission to access user profile');
      // Trigger IdentityModule.authorize() for scope 'profile email', then reload via ScopeModule.reloadScopes() and try again
      break;
      case 426:
      console.log('User needs to upgrade the app');
      // Advise user to upgrade app
      break;
      default:
      console.error(`Error ${response.status_code}: ${response.error}`);
      }
      } else {
      console.error('Unhandled response');
      }