Reading Google Sheets from a Go Program
eli.thegreenplace.net
eli.thegreenplace.net
https://cloud.google.com/docs/authentication/application-def...
You can:
PROJECT="..."
ACCOUNT="..."
# Add this value to your Sheet(s)
EMAIL="${ACCOUNT}@${PROJECT}.iam.gserviceaccount.com"
export GOOGLE_APPLICATION_CREDENTIALS=${PWD}/${ACCOUNT}.json
And then: ctx := context.Background()
scopes := []string{
"https://www.googleapis.com/auth/spreadsheets.readonly",
}
opts := option.WithScopes(scopes...)
srv, err := sheets.NewService(ctx, opts)
Remaining code remains unchanged.One omission from your post is that you will need to enable the Sheets service|API either using gcloud:
gcloud enable sheets.googleapis.com --project=${PROJECT}
Or by URL: https://console.cloud.google.com/apis/library/sheets.googlea...I will mention the service enable.
${PWD}/${ACCOUNT}.json
Possibly created by: gcloud iam service-accounts create ${ACCOUNT} --project=${PROJECT}
gcloud iam service-accounts keys create ${PWD}/${ACCOUNT}.json \
--iam-account=${EMAIL} \
--project=${PROJECT}
Because Google Workspace does not support IAM, no IAM roles need be assigned. Instead OAuth scopes are used.It seems you can write to them as well... This seems much more magical than "Here is a link to a CSV, import the data yourself".
Did you know that your spreadsheet can also receive HTTP requests that trigger functions?
Honestly if there was a way to Auth (even basic Auth or Bearer) via classic Google Sheets, you could create a monster so easily.
> Honestly if there was a way to Auth (even basic Auth or Bearer) via classic Google Sheets, you could create a monster so easily.
Excel/sheets is an IDE for accountants. They make monsters over there all the time!
Account setup instructions at https://github.com/bbkane/starghaze/blob/master/dev_notes.md...