Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
*.pickle
token.json
credentials.json
.env
env/
.vscode/
.venv/
Empty file added google-docs/__init__.py
Empty file.
67 changes: 67 additions & 0 deletions google-docs/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
from __future__ import print_function
import os.path
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials

import os
from dotenv import load_dotenv, set_key

# If modifying these scopes, delete the file token.json.
SCOPES = ['https://www.googleapis.com/auth/documents']

load_dotenv()

def auth():
creds = None
# The file token.json 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.json'):
creds = Credentials.from_authorized_user_file('token.json', SCOPES)
# 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.json', 'w') as token:
token.write(creds.to_json())
return creds

def main():
"""Shows basic usage of the Docs API.
Prints the title of a sample document.
"""
creds = auth()
service = build('docs', 'v1', credentials=creds)

# The ID of a sample document.
DOCUMENT_ID = os.getenv("DOCUMENT_ID")

# Retrieve the documents contents from the Docs service.
if not DOCUMENT_ID:
title = 'Internal Monologue'
body = {
'title': title
}
doc = service.documents().create(body=body).execute()
print('Created document with title: {0}'.format(doc.get('title')))

if not os.path.exists(".env"):
os.write(".env")

DOCUMENT_ID = doc.get("documentId")
set_key(".env", "DOCUMENT_ID", DOCUMENT_ID)

document = service.documents().get(documentId=DOCUMENT_ID).execute()

print('The title of the document is: {}'.format(document.get('title')))


if __name__ == '__main__':
main()
Loading