I have a Google spreadsheet that has not been made public, but just available to anyone that has the access link. Though I can access the data in CSV format from my browser
Ran into this problem and tried a few of the solutions. None were working perfectly so I wrote this curl which seems to do the job. You need to share your google spreadsheet with anyone who has the link for it to work
curl -o /path/to/file/you/want/csv/to/go.csv 'https://docs.google.com/spreadsheet/ccc?key=[the-id-of-your-spreadsheet]&output=csv' -L
the -L is the trick here has google often moves the csv around but will send you a redirect link. -L tells curl to follow the redirects until it lands on the file.
you can find the id of your spreadsheet by opening it in google drive and looking at the url
https://docs.google.com/spreadsheets/d/[idwillbehere]/edit#gid=0