Fetches the user's email address from their Grab profile.
The user's email address if available. See FetchEmailResponse.
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, isError } 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 (isError(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 by triggering email capture bottom sheet and OTP verification.
Optionalrequest: { email?: string; skipUserInput?: boolean }Optional request parameters for email verification. See VerifyEmailRequest.
Confirmation of whether the email verification was successful. See VerifyEmailResponse.
This method requires Grab app version 5.399 or above. If called on an older version, it will return a 426 (Upgrade Required) response.
If the user closes the verify OTP bottom sheet, the method will return a status_code of 204.
Successful verification will also update the email address for the user on Grab.
Simple usage with email provided
import { ProfileModule, isSuccess, isError } from '@grabjs/superapp-sdk';
// Initialize the profile module
const profile = new ProfileModule();
// Verify email with pre-filled email address
const response = await profile.verifyEmail({
email: 'user@example.com',
skipUserInput: true
});
// Handle the response
if (isSuccess(response)) {
if (response.status_code === 200) {
console.log('Verified email:', response.result.email);
} else if (response.status_code === 204) {
console.log('User closed the bottom sheet');
}
} else if (isError(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');
}
JSBridge module for accessing user profile information.
Remarks
Provides access to user profile data such as email verification. This code must run on the Grab SuperApp's WebView to function correctly.
Example
ES Module:
Example
CDN (UMD):