Create a google app
To enable Google Drive backups you will need to create a Google Project within your organization that will act as the OAuth consumer.- Create a new Google project in the Google Cloud Console
- On the APIs & Services page click
ENABLE APIS AND SERVICES - Search for
Google Drive API, select it, and clickEnable - Click on OAuth consent screen
- For user type select internal.
- Fill out the relevant information.
- Our SDKs request Drive scopes per backup option (see the per-option scope tables in the iOS, Android and Web backup guides). Configure both scopes on your OAuth consent screen so any backup option works:
-
At runtime, users only see consent checkboxes for the scopes their configured backup option needs. The hidden app-data option (
appDataFolder) requests onlydrive.appdata, the user-visible folder option (gdriveFolderon iOS and Web,CustomFolderon Android) requests onlydrive.file, andappDataFolderWithFallbackrequests both. Both scopes are in Google’s non-sensitive category. The React Native SDK has no backup option: it requests onlydrive.fileand stores backups in the user-visible folder. -
Click on Credentials in the left menu and select
+ Create Credentials
- Android
- iOS
- Select
OAuth client IDand chooseAndroidfrom theApplication Typelist - Fill in the form as instructed, with
Name,Package name, andSHA-1from your Keystore.- Note that when testing you’ll want to use your debug.keystore at /android/app/debug.keystore; However, you’ll need to switch this value when pushing it to the store.
- Find the Sha-1 fingerprint with this command from the root project folder:
keytool -keystore ./app/debug.keystore -list -v
- Click on Credentials in the left menu, select
+ Create Credentialsagain, and selectOauth client IDagain. Then selectWeb Applicationas the Application type. - Input the
Name. Then click create and copy the value fromYour Client ID. - This value is what you will pass into the
PortalOptionsconfig when instantiating yourPortalclass. - Important: Add emails for internal testing until you’ve published your app for external use.
Useful Google Resources
Should I set scopes in the OAuth Consent Screen?- Our backup method does not require any sensitive or restrictive scopes as defined by google; however, setting scopes for your application will limit the functionality to only what is required from the permission if the temporary auth token was to get compromised. It is recommended by google to register all scopes
- You do not need to in order to publish your app because we don’t require sensitive or restrictive scopes; however, if you would like brand verification you will need to get google permissions. Those times vary from a couple days to two weeks. Google docs
Share backups across platforms
To recover on one platform a backup made on another, set up every platform the same way:- Use one Google Cloud project, whichever backup location you use. Create the OAuth clients for all of your apps, web, iOS and Android, in the same project. Google Drive limits each app to its own files: the app data folder is private to the app that wrote it, and the
drive.filescope used for the user-visible folder only covers files the app created or the user opened with it. A backup written with an OAuth client from another project may therefore not be found. - Sign in with the same Google account. Each backup is stored in the Drive of the Google account the user chooses.
- Choose the same backup location on every platform. The Web SDK uses the user-visible folder unless you set
backupOption. On iOS (setGDriveConfiguration(clientId:backupOption:)) and Android (GDriveConfiguration) you choose the option when you configure Google Drive, and their guides use the app data folder. The deprecated iOSsetGDriveConfiguration(clientId:folderName:)uses the user-visible folder. The React Native SDK only uses the user-visible folder. The equivalent options are:
The Web SDK supports
backupOption starting in 4.2.0. Earlier Web SDK versions only use the user-visible folder, so they can’t recover backups stored in the app data folder. See the Web backup guide before changing the option for existing users.