This program creates new google spreadsheet but I can't access it. How to make it public? I tried using google drive api but then I watched a video where dude didn't use it and everything was ok so I'm confused.
import httplib2
from oauth2client.service_account import ServiceAccountCredentials
from googleapiclient.discovery import build
def get_service_sacc():
creds_json = "bubbly-mantis-357613-85d3b9e3b0f9.json"
scopes = ['https://www.googleapis.com/auth/spreadsheets']
creds_service = ServiceAccountCredentials.from_json_keyfile_name(creds_json, scopes).authorize(httplib2.Http())
return build('sheets', 'v4', http=creds_service)
def init_spreadsheet(title):
service = get_service_sacc()
spreadsheet = {
'properties': {
'title': title,
}
}
spreadsheet = service.spreadsheets().create(body=spreadsheet,
fields='spreadsheetId') \
.execute()
print(f"Spreadsheet ID: {(spreadsheet.get('spreadsheetId'))}")
return spreadsheet.get('spreadsheetId')
init_spreadsheet("CRYPTO")
Just solved by using google drive api
def get_creds():
creds_json = "bubbly-mantis-357613-85d3b9e3b0f9.json"
scopes = ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive']
creds_service = ServiceAccountCredentials.from_json_keyfile_name(creds_json, scopes).authorize(httplib2.Http())
return creds_service
def get_service_sacc():
return build('sheets', 'v4', http=get_creds())
def init_spreadsheet(title):
service = get_service_sacc()
spreadsheet = {
'properties': {
'title': title,
}
}
spreadsheet = service.spreadsheets().create(body=spreadsheet,
fields='spreadsheetId').execute()
spreadsheetId = spreadsheet['spreadsheetId']
driveService = googleapiclient.discovery.build('drive', 'v3',
http=get_creds())
access = driveService.permissions().create(
fileId=spreadsheetId,
body={'type': 'anyone', 'role': 'reader'},
fields='id'
).execute()
print(f"Spreadsheet ID: {(spreadsheet.get('spreadsheetId'))}")
return spreadsheet.get('spreadsheetId')
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.