Skip to content

Commit

Permalink
Added Google Play auth to the docs
Browse files Browse the repository at this point in the history
  • Loading branch information
intenscia committed Jul 7, 2024
1 parent ec0fed8 commit 5e575aa
Show file tree
Hide file tree
Showing 21 changed files with 114 additions and 20 deletions.
28 changes: 14 additions & 14 deletions public/en-us/console-platforms/apple.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@ import CrossLink from '@site/src/components/CrossLink'

# Apple

Typical requirements to authenticate to mod.io from a game running on Apple include:
* A mod.io account.
* An Apple developer account.
Typical requirements for using mod.io on Apple games include:
* A method for moderating objectionable material from being made available
* A mechanism to report offensive content and timely responses to concerns
* The ability to block abusive users from the service
* Published contact information so users can easily reach you
* An Apple developer account

The purpose of this documentation, is for games who want to setup authentication to mod.io using Apple SSO for their players on Apple devices.

## Setting up Apple SSO

Expand All @@ -24,32 +29,27 @@ It takes about 48 hours for your Apple developer account to be verified. Once it

1. Sign in to your Apple developer account and click on your **[account](https://developer.apple.com/account/)**.
![apple_developer_account_settings.png](images/apple/apple_developer_account_settings.png)

2. In the **Certificates, Identifiers & Profiles** section, click on **[Identifiers](https://developer.apple.com/account/resources/identifiers/list)**. Click on the "+" button to create a new identifier and select the **App IDs** option.
![apple_select_appid.png](images/apple/apple_select_appid.png)

3. Under register a new identifier, select **App** type and click on **Continue**.
![apple_register_new_identifier.png](images/apple/apple_register_new_identifier.png)
4. Fill out the description and bundle ID for your app. Take note of the bundle id as you will need it [later](#modio-setup). Click on **Continue**.
4. Fill in the App ID Description and Bundle ID, then scroll down to the **Capabilities** section. Take note of the **Bundle ID** as you will need to [enter it on mod.io later](#modio-setup). Enable the **Sign in with Apple** capability and click on **Continue**.
![apple_register_appid.png](images/apple/apple_register_appid.png)
5. Fill in the App ID Description and Bundle ID, then scroll down to the **Capabilities** section. Take note of the **Bundle ID** as you will need it later. Enable the **Sign in with Apple** capability and click on **Continue**.
5. Review the information and click on **Register**. A new App ID will be created, and you should be redirected back to the **identifiers** page.
![apple_enable_signin_capability.png](images/apple/apple_enable_signin_capability.png)

6. Review the information and click on **Register**. A new App ID will be created, and you should be redirected back to the **identifiers** page.
7. Open your Xcode project and follow the steps [here](https://help.apple.com/xcode/mac/11.0/#/devaf282080a) to add your Apple Developer account to Xcode if it's not already connected.
8. Update the **Bundle Identifier** to match the one you created in the Apple Developer account. Update the **Team** to match your Apple Developer account.
6. Open your Xcode project and follow the steps [here](https://help.apple.com/xcode/mac/11.0/#/devaf282080a) to add your Apple Developer account to Xcode if it's not already connected.
7. Update the **Bundle Identifier** to match the one you created in the Apple Developer account. Update the **Team** to match your Apple Developer account.
![apple_signin_capability_xcode.png](images/apple/apple_signin_capability_xcode.png)
9. Next, navigate to the **Signing & Capabilities** tab. Select your team and then click on the "+" button to add a new capability.
8. Next, navigate to the **Signing & Capabilities** tab. Select your team and then click on the "+" button to add a new capability.
![apple_sso_setup_xcode_config.png](images/apple/apple_sso_setup_xcode_config.png)
10. Scroll down the list to locate the **Sign in with Apple** capability, click to add this to your project. Update your App ID in the **Signing & Capabilities** tab.
9. Scroll down the list to locate the **Sign in with Apple** capability, click to add this to your project. Update your App ID in the **Signing & Capabilities** tab.
![apple_xcode_enable_signin_capability.png](images/apple/apple_xcode_enable_signin_capability.png)

## Configuring your games Apple Bundle ID on mod.io

1. On the mod.io website, navigate to your [game's admin dashboard](https://mod.io/content) and go to the **Settings** tab.
2. Under **Admin > General Settings** find and click on the **Platform Authentication**.
![modio_apple_sso_game_settings.png](images/apple/modio_apple_sso_game_settings.png)

3. Enter the **<a name="modio-setup">Bundle ID</a>** of your app in the **Apple** field and **Save Changes**.

## Sign in players to mod.io using Apple
Expand Down
2 changes: 1 addition & 1 deletion public/en-us/console-platforms/gdk.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import CrossLink from '@site/src/components/CrossLink'

# Xbox One & Xbox Series X/S

Requirements for Xbox One & Xbox Series X/S typically include:
Typical requirements for using mod.io on Xbox One & Xbox Series X/S games include:
* UGC cannot run scripts or execute code, unless sufficient mitigations are demonstrated to be in place (e.g. sandboxing or manual curation of content)
* UGC must work without the need for manual installation
* All “words” must be run through the Xbox word filter
Expand Down
89 changes: 89 additions & 0 deletions public/en-us/console-platforms/google.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
id: platforms-google
title: Google Play
slug: /platforms/google/
sidebar_position: 6
---
import CrossLink from '@site/src/components/CrossLink'

# Google

Typical requirements for using mod.io on Google Play games include:
* Requires users accept the app's terms of use and/or user policy before users can create or upload UGC
* Defines objectionable content and behaviors (in a way that complies with Google Play Developer Program Policies), and prohibits them in the app’s terms of use or user policies
* Conducts UGC moderation, as is reasonable and consistent with the type of UGC hosted by the app. This includes providing an in-app system for reporting and blocking objectionable UGC and users, and taking action against UGC or users where appropriate
* Provide in-app functionality to report content and users
* Provides safeguards to prevent in-app monetization from encouraging objectionable user behavior
* A Google Cloud console account
* A Google Play console account

The purpose of this documentation, is for games who want to setup authentication to mod.io using Google SSO for their players on Android devices.

## Setting up Google SSO

We require the following scopes to authenticate a user against your Google project credentials:
* .../auth/userinfo.email
* .../auth/userinfo.profile
* .../auth/games
* .../auth/games_lite
* .../auth/drive.appdata
* openid

:::note
Play games services version 2 (PGSV2) no longer supports additional OAuth2.0 scopes out of the box, therefore it is recommended to use Google sign-in SDK as outlined here: [<u>OAuth scopes on PGSV2</u>](https://developer.android.com/games/pgs/signin#oauth-scopes) and here: [<u>OAuth scopes and PGSV1</u>](https://developers.google.com/games/services/common/concepts/v1/sign-in#oauth-scopes).
:::

To authenticate to mod.io via a Google Play account, we support the following credential flows:
* Server Authentication Code
* ID Token

### Setting up your Google Console Project

1. Create or open a project on Google’s APIs Console: [Google API Console](https://console.cloud.google.com/)
2. Navigate to the OAuth consent screen page and fill out the App Information that will display on the consent screen for users of your Game.
3. Fill out the **App Information** section with your **App Name**, **User support email** and upload an **App logo**.
![Google Cloud Console Oauth Consent Screen Step 1a](images/google/google_oauth_screen_app_info_section.png)
4. Next, fill out the **App domain** section by inserting your application homepage, privacy policy and terms of service URLs.
![Google Cloud Console Oauth Consent Screen Step 1b](images/google/google_oauth_screen_app_domain.png)
5. Enter your developer contact information then, click **save and continue**.
6. Next, select the scopes required for your project by clicking **Add or Remove Scopes**, make sure you select .../auth/userinfo.email, .../auth/userinfo.profile, .../auth/games, .../auth/drive.appdata and .../auth/games_lite, openid then click **save and continue**.
7. Cross-check the OAuth consent screen page to verify that the information there is correct for your project. 
8. Navigate to the credentials page and create credentials, making sure you select OAuth Client ID as the credential type.  
![Google Cloud Console Oauth client configuration screen](images/google/create_google_oauth_client.png)
9. Create an OAuth ClientID set application type as web application, add a name, and an authorised Redirect URI. Click create (note your Client ID, Redirect URI and Client Secret as these are required to [enter on mod.io later](#modio-setup)).
![Google Cloud Console Oauth client configuration screen](images/google/google_create_oauth_web_application.png)
10. Create an OAuth ClientID for Android - select application type as Android from the dropdown, for the package name enter the name of your game as appears in your [AndroidManifest.xml](https://developer.android.com/guide/topics/manifest/manifest-intro) file, and [SHA-1 fingerprint](https://developers.google.com/android/guides/client-auth).
![Google Cloud Console Android Oauth client configuration screen](images/google/google_setup_adroid_clientId.png)

### Setting Up Play Games Services

1. Navigate to the Google Play Console and sign in.
2. Create a game or select your app/game from the list of games ([official guide](https://support.google.com/googleplay/android-developer/answer/9859152)).
3. Within the console of your game, navigate to **Play Games Services > Setup and management > Configuration** tab. Select **Create new Play Games Services project** then use the dropdown to select the Google cloud project we set up in previous steps, or if you have and click **use**.
![Google play games services configuration screen](images/google/google_play_games_services_configuration_screen.png)
5. Click on **Edit properties** and fill out the display name, description, category, icon, feature graphic and scroll down to make sure that the cloud project platform project is listed under **External Integrations** for your game, **save changes**.
![Google play external integrations](images/google/google_play_console_external_integrations.png)
6. Click on **Add Credential** then select **Game Server**. On the following page, fill out the details and select the OAuth 2.0 client ID set up (on Step 4, previous section) **save changes**.
![Google play external integrations](images/google/google_PGS_config_game_server_oauth_client.png) 
7. Return to the play games services setup page and click on **Add Credential**, then select the **Android** option and the Android OAuth2.0 client ID from the dropdown (Step 5, previous section) **save changes**.
![Google play external integrations](images/google/google_PGS_config_android_oauth_client.png)

## Configuring your games Google Client ID, Secret and Redirect URI on mod.io

1. On the mod.io website, navigate to your [game's admin dashboard](https://mod.io/content) and go to the **Settings** tab.
2. Under **Admin > General Settings** find and click on the **Platform Authentication**.
![mod.io set up external authentication configuration screen](images/google/modio_setup_external_platform_authentication_settings_page.png)
3. Enter the **<a name="modio-setup">Google Client ID</a>**, **Google Client Secret**, and **Google Redirect URI** and **Save Changes**.

## Sign in players to mod.io using Google

If your game is using the official mod.io SDK, Unreal or Unity plugin, follow the instructions provided with it to authenticate players using Google SSO, or other supported platform authentication methods.

If you are building something custom using the mod.io REST API, follow the [instructions provided here](https://docs.mod.io/restapiref/#google) to authenticate players using Google SSO, by calling the `/external/googleauth` endpoint.

## References

* [Enabling Google Play Games Services](https://developers.google.com/games/services/console/enabling)
* [Set Up Google Play Console](https://support.google.com/googleplay/android-developer/answer/9859152)
* [Google Play Games Services Offline Access](https://developers.google.com/games/services/android/offline-access)
* [Google Play Games Services Android Offline Access](https://developers.google.com/games/services/v1/android/offline-access)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,17 @@ import CrossLink from '@site/src/components/CrossLink'

# PlayStation®4 & PlayStation®5

Typical requirements for PS4™ & PS5® games include:
Typical requirements for using mod.io on PS4™ & PS5® games include:
* UGC cannot run scripts or execute code, unless sufficient mitigations are demonstrated to be in place (e.g. sandboxing or manual curation of content)
* UGC must work without the need for manual installation
* Titles utilising mod.io must allow users the option of playing without mod.io functionality
* If content is created by a user on PS4/PS5, the display name of the user must be shown as the creator if available (our system does this automatically if you configure your [platform headers correctly](https://docs.mod.io/restapiref/#platforms))
* User consent is required the first time before authenticating a user on PS4/PS5 or accessing data from mod.io. Note: a users consent in one game cannot be used in another, all games must get a users consent individually.
* User consent is required the first time before authenticating a user on PS4/PS5 or accessing data from mod.io. Note: a users consent in one game cannot be used in another, all games must get a users consent individually
* If the user has UGC parental controls disabled, the UGC menu and any UGC installed must be disabled
* Users must be able to play your game without having to create a mod.io account, however UGC should not be made available to users without a mod.io account. This is required to adhere to the TRCs of ensuring consent is collected, and the user has the ability to block content from other users.
* Users must be able to play your game without having to create a mod.io account, however UGC should not be made available to users without a mod.io account. This is required to adhere to the TRCs of ensuring consent is collected, and the user has the ability to block content from other users
* All data mod.io provides relating to metrics and usage connected to PS4/PS5, are provided at a partner level only, and for private internal use by your team only
* Disclose usage of mod.io when submitting proposals for UGC implementations and approval via DevNet
* All existing Technical Requirements, cross-platform Policy requirements and business policies remain in effect. You need to seek appropriate waivers via standard process if your implementation of mod.io contravene these requirements.
* All existing Technical Requirements, cross-platform Policy requirements and business policies remain in effect. You need to seek appropriate waivers via standard process if your implementation of mod.io contravene these requirements

All games supporting UGC must be approved individually, and you will be required to go through a dedicated UGC approval process with Sony Interactive Entertainment directly once you are ready to launch the functionality. We recommend contacting your Sony Interactive Entertainment representative to establish their rules for UGC on PS4/PS5 and any specific requirements you will need to meet. We can assist you with this process, and introduce you to our contact in Sony Interactive Entertainment: Antonio Grasso - Global Technology Partnerships if this would be helpful, to get these approvals processed.

Expand Down
2 changes: 1 addition & 1 deletion public/en-us/console-platforms/switch.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import CrossLink from '@site/src/components/CrossLink'

# Nintendo Switch

Typical Nintendo Switch requirements include:
Typical requirements for using mod.io on Nintendo Switch games include:
* UGC cannot run scripts or execute code, unless sufficient mitigations are demonstrated to be in place (e.g. sandboxing or manual curation of content)
* Nintendo prefers that UGC is called “UGC”, “Items”, “Content”, “Maps” or something similar, not "Mods"
* UGC must work without the need for manual installation
Expand Down
5 changes: 5 additions & 0 deletions public/menu/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@ const sidebars = {
id: 'console-platforms/platforms-apple',
label: 'Apple',
},
{
type: 'doc',
id: 'console-platforms/platforms-google',
label: 'Google Play',
},
// Game Management
{
type: 'html',
Expand Down

0 comments on commit 5e575aa

Please sign in to comment.