SCOPES_SHEETS = 'https://www.googleapis.com/auth/spreadsheets'
Дает разрешения на чтение / запись ^
def main():
service_sheets = get_google_service('sheets', 'v4', 'token_sheets.json', SCOPES_SHEETS)
with open('services.pkl', 'wb') as f:
pickle.dump(service_sheets, f)
with open('services.pkl', 'rb') as f:
service_sheets = pickle.load(f)
with open('serviceCopy.pkl', 'wb') as f:
pickle.dump(service_sheets, f)
def get_google_service(type, version, token, scope):
store = file.Storage(token)
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('credentials.json', scope)
creds = tools.run_flow(flow, store)
return build(type, version, http=creds.authorize(Http()))
У меня есть программа, которую я хочу запустить в качестве службы в фоновом режиме. Это включает в себя чтение / запись вещей в листе Google. Для этого мне нужно создать сервис Google, но я не хочу делать это каждый раз, когда выполняется код, поэтому вместо этого я пытаюсь сохранить объект сервиса в файле. Почему-то файл service.pkl
отличается от serviceCopy.pkl
. Я пытался изменить кодировку для pickle.load(file, encoding='utf8')
, но продолжаю получать файлы, которые не совпадают.
Насколько я понимаю, они должны быть точно такими же.
Я думаю, что проблема заключается в загрузке сохраненного файла, но я не уверен, что его вызывает.
Я использую Python 3.6.