В API Google срок действия вашего токена аутентификации истекает через час, если вы не запустите его повторно или не обновите sh токен. Со встроенной в Google документацией и модулями Google вы делаете следующий код:
authorization_url, state = flow.authorization_url(
# Enable offline access so that you can refresh an access token without
# re-prompting the user for permission. Recommended for web server apps.
access_type='offline',
# Enable incremental authorization. Recommended as a best practice.
include_granted_scopes='true')
Итак, как мне перефразировать sh таким же образом с gspread и oauth2client?