If you self-certify your app as primarily for children under 13, you must avoid using Platform SDK features. This restriction ensures compliance with age-specific guidelines. To ensure compliance, the Data Use Checkup for your app is disabled.
Prerequisites
Implementing Invite to App for your app requires the following:
Your app must be immersive, meaning it must operate in VR/MR mode. Currently, the Invite to App feature does not support non-immersive environments, such as 2D panel apps or standard Android apps.
You must have at least one destination created for your app.
You must have enabled group presence for users within your app.
Integrating the Invite to App feature enables your users to effortlessly invite followers, Recently Played With users, or in-game connections directly to a multiplayer session from the Quest menu. When a user sends a invitation, the recipient receives a notification in VR or on the Meta Horizon app, and they can accept it to join the multiplayer session.
Overview
Invite to app allows users to have their group presence set to a lobby session ID and be joinable so others can join them through Meta Quest via invites. To allow users to send and receive invitations, the is_joinable flag must be set to true.
The dialog list for invitations is populated by followers, users recently played with, and suggested users. If the inviting user has no followers or recent interactions, the list will not suggest any invitees.
User experience
The Invite to App button is only visible when a user is in a lobby. If more than one user is in the roster, then the Roster button replaces the Invite button. More users can be invited via the Roster button if the app supports more users.
After accepting the invitation, the invited users Group Presence must be updated. This adds them to the Roster which replaces the Invite button on the Meta Quest menu. Users can only be part of one roster at a time.
The main user flow for Invites is as follows:
Press the Meta Quest button in your app.
Select Invite from the Meta Quest menu
Select a user, or users, from the list of suggested users.
Send the selected users an invitation to the app.
Invited users will receive a toast notification. Non-received toasts are populated in the notifications list.
Users who accept the invitation will launch the app and join the inviting user.
Note
Invite to App does not provide VoIP or networking solutions. Developers are responsible for implementing their VoIp own solutions.
Failed to join scenarios the developer should handle and display to user
Meta Quest provides a set of system-level error dialogs that can be called when your application runs into one of these scenarios if you do not have your own error dialogs. See more in Invokable Error Dialogs.
The session is full
The network failed to establish a connection and timed out
The destination is unavailable for the current user
The destination is in DLC that the user does not have
Tutorial has not been completed yet
The session is not available for the current user
The session cannot be found or is no longer available
The match already started
The user’s level is not high enough
The level is not unlocked yet
The app needs to be updated first
The user is has a child account
Best practices
Don’t recycle ids. Make sure they are unique.
Invite to app quickstart
The following is the minimum implementation necessary to integrate Invite to App into your application and achieve Level 1 integration with the Platform SDK.
void LaunchInvitePanel()
{
Debug.Log("Launching Invite Panel...");
var options = new InviteOptions();
GroupPresence.LaunchInvitePanel(options).OnComplete(message =>
{
Debug.Log("Invite panel closed");
if (message.IsError)
{
Debug.Log(message.GetError().Message);
}
});
}
For an example implementation in a running project, check the invite example in our Unity-Shared Spaces project.
Invite to app APIs
Note: There must be a binary uploaded in the developer dashboard in order to receive invitations. See more about uploading an app’s binary in the Publish section.
Launch invite dialog
This method launches the Invite to App dialog and passes a list of suggested users.
If no error occurs, the method returns a message with type ::ovrMessage_GropPresence_Set in response.
Set the Group Presence’s Destination for the Current User
This method sets the group presence’s destination for the current user. Only the destination will change while leaving the other settings in the user’s presence the same.
If no error occurs, the method returns a message with type :ovrMessage_GroupPresence_SetDestination in response.
Set the group presence is_joinable flag for the current user
This method sets the group presence’s is_joinable flag for the current user. All other settings regarding the user’s presence will remain the same. If a user is joinable, they are able to send invites.
If no error occurs, the method returns a message with type :ovrMessage_GroupPresence_SetIsJoinable in response.
Set the Group Presence’s lobby session id for the Current User
This method sets the group presence’s lobby session id for the current user. Only the lobby session id will change while leaving the other settings in the user’s presence the same.
If no error occurs, the method returns A message with type ::ovrMessage_GroupPresence_SetLobbySession in response.
Set the group presence match session id for the current user
This method sets the group presence’s match session id for the current user. Only the match session id will change while leaving the other settings in the user’s presence the same.