Files
nextcloud-docs/admin_manual/configuration_files/external_storage/google.rst
2016-08-19 17:31:21 +02:00

116 lines
4.2 KiB
ReStructuredText

============
Google Drive
============
Nextcloud uses OAuth 2.0 to connect to Google Drive. This requires configuration
through Google to get an app ID and app secret, as Nextcloud registers itself
as an app.
All applications that access a Google API must be registered through the
`Google Cloud Console <https://console.developers.google.com/>`_. Follow along carefully
because the Google interface is a bit of a maze and it's easy to get lost.
If you already have a Google account, such as Groups, Drive, or Mail, you can
use your existing login to log into the Google Cloud Console. After logging in
click the **Create Project** button.
.. figure:: images/google-drive.png
:alt: Google Drive app "create project" screen
Give your project a name, and either accept the default **Project ID** or
create
your own, then click the **Create** button.
.. figure:: images/google-drive1.png
:alt: New project creation screen.
You'll be returned to your dashboard.
.. figure:: images/google-drive2.png
:alt: Project dashboard, with all project options.
:scale: 75%
Google helpfully highlights your next step in blue, the **Use Google APIs**
box. Make sure that your new project is selected, click on **Use Google APIs** ,
and it takes you to Google's APIs screen. There are many Google APIs; look for
the **Google Apps APIs** and click **Drive API.**
.. figure:: images/google-drive3.png
:alt: Drive API link.
**Drive API** takes you to the API Manager overview. Click the blue **Enable
API** button.
.. figure:: images/google-drive4.png
:alt: API dashboard.
Now you must create your credentials, so click on **Go to credentials**.
.. figure:: images/google-drive5.png
:alt: Create Client ID screen.
For some reason Google warns us again that we need to create credentials. We
will use 0Auth 2.0.
.. figure:: images/google-drive6.png
:alt: Another warning to create credentials.
Now we have to create a consent screen. This is the information in the screen
Google shows you when you connect your new Google app to Nextcloud the first
time. Click **Configure consent screen**. Then fill in the required form fields.
Your logo must be hosted, as you cannot upload it, so enter its URL. When
you're finished click **Save**.
.. figure:: images/google-drive8.png
:alt: Creating the consent screen.
The next screen that opens is **Create Client ID**. Check **Web Application**,
then enter your app name. **Authorized JavaScript Origins** is your root domain,
for example ``https://example.com``, without a trailing slash. You need two
**Authorized Redirect URIs**, and they must be in this form::
https://example.com/nextcloud/index.php/settings/personal/
https://example.com/nextcloud/index.php/personal/
https://example.com/nextcloud/index.php/settings/admin/externalstorages
https://example.com/nextcloud/settings/admin/externalstorages
Replace ``https://example.com/nextcloud/`` with your own Nextcloud server URL,
then click **Create**.
.. figure:: images/google-drive9.png
:alt: Creating client credentials.
Now Google reveals to you your **Client ID** and **Client Secret**. Click
**OK**.
.. figure:: images/google-drive10.png
:alt: Client ID and client secret.
You can see these anytime in your Google console; just click on your app name
to see complete information.
.. figure:: images/google-drive11.png
:alt: Client ID and client secret
Now you have everything you need to mount your Google Drive in Nextcloud.
Go to the External Storage section of your Admin page, create your new folder
name, enter the Client ID and Client Secret, and click **Grant Access**. Your
consent page appears when Nextcloud makes a successful connection. Click
**Allow**.
.. figure:: images/google-drive12.png
:alt: Google Drive consent page.
When you see the green light confirming a successful connection
you're finished.
.. figure:: images/google-drive13.png
:alt: Google Drive mount in Nextcloud.
See :doc:`../external_storage_configuration_gui` for additional mount
options and information.
See :doc:`auth_mechanisms` for more information on authentication schemes.
603026686136-qnv9ooocacrkrh1vs0cht83eprgm2sbb.apps.googleusercontent.com