Canis Lobo
Canis Lobo

Reputation: 423

Google Drive API OAuth 2.0: ERR_CONNECTION_REFUSED

I enabled the Google Drive API in my personal GCP, set up my OAuth2 consent screen, and downloaded my credentials.json file. I'm now running this code from the Python quickstart in Colab:

from __future__ import print_function
import pickle
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

# If modifying these scopes, delete the file token.pickle.
SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']

def main():
    """Shows basic usage of the Drive v3 API.
    Prints the names and ids of the first 10 files the user has access to.
    """
    creds = None
    # The file token.pickle stores the user's access and refresh tokens, and is
    # created automatically when the authorization flow completes for the first
    # time.
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    # If there are no (valid) credentials available, let the user log in.
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'credentials.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)

    service = build('drive', 'v3', credentials=creds)

    # Call the Drive v3 API
    results = service.files().list(
        pageSize=10, fields="nextPageToken, files(id, name)").execute()
    items = results.get('files', [])

    if not items:
        print('No files found.')
    else:
        print('Files:')
        for item in items:
            print(u'{0} ({1})'.format(item['name'], item['id']))

if __name__ == '__main__':
    main()

When I execute the code, I am prompted to login via Google's OAuth sign-in page, to give my program access to my Google account. I click Allow, then immediately see this page: Error screen

I've redone this without a VPN or firewall with no luck, and I don't know if this is a problem with my OAuth or creds setup in the Project. Thoughts?

Upvotes: 2

Views: 2582

Answers (2)

Lier llddll
Lier llddll

Reputation: 11

Provide a solution:

When run_local_server() opening browser, copy the url and use private browsing to login with this link.

It work for me.

Upvotes: 0

Canis Lobo
Canis Lobo

Reputation: 423

Solved by running in PyCharm. VSCode also works. For whatever reason, Colab continues to throw the error.

Upvotes: 1

Related Questions