2016-09-06 3 views
0

У меня есть скрипт Python на сервере, который работает каждый день утром и синхронизирует строки из нескольких баз данных в Google Spreadsheet. Этот скрипт работает до мая 2016 года на , что сервер без проблем, и запускает еще один с самого раннего возраста. Сценарии равны и используют те же файлы учетных данных JSON. Несколько дней назад, на этом сервере я получил сообщение об ошибке:oauth2client.client.AccessTokenRefreshError: invalid_grant

File "/usr/local/lib/python2.7/dist-packages/gspread/client.py", line 326, in authorize 
    client.login() 
File "/usr/local/lib/python2.7/dist-packages/gspread/client.py", line 85, in login 
    self.auth.refresh(http) 
File "/usr/lib/python2.7/dist-packages/oauth2client/client.py", line 516, in refresh 
    self._refresh(http.request) 
File "/usr/lib/python2.7/dist-packages/oauth2client/client.py", line 653, in _refresh 
    self._do_refresh_request(http_request) 
File "/usr/lib/python2.7/dist-packages/oauth2client/client.py", line 710, in _do_refresh_request 
    raise AccessTokenRefreshError(error_msg) 
oauth2client.client.AccessTokenRefreshError: invalid_grant 

Но (как я уже писал) тот же сценарий работает без проблем на другом сервере. Эти два сценария используют разные электронные таблицы, но все они имеют разрешения для пользователя службы. В общих документах нет разрешений, разрешений и т. Д. Оба сервера имеют один и тот же файл сценария и json-удостоверения, но указанный сервер подтверждает это сообщение. Эти скрипты работали около 3 месяцев. Никаких изменений в коде или разрешениях.

В чем проблема?

Thanks, a.

+0

Как долго работает сценарий в целом? – roganjosh

+0

Продолжительность: от 5 до 20 минут. Но - конечно - теперь это занимает несколько секунд. – airween

+0

Ну, я не знаю, как и почему, но сегодня утром сценарий снова побежал успешно ... Я ничего не делал ... – airween

ответ

1

Ваша проблема была, скорее всего, вызвана неправильным синхронизацией времени сервера.

В следующий раз попробуйте синхронизировать время своего сервера с сетевыми серверами времени, например, с помощью установки ntp.

Это должно решить проблему.

+0

Нет - были (и есть) ntp устанавливает на обоих серверах. Во всяком случае, проблема решена, но я не знаю, почему и как. См. Мой предыдущий комментарий: http://stackoverflow.com/questions/39355881/oauth2client-client-accesstokenrefresherror-invalid-grant/43111516#comment-67064708. С уважением, a. – airween

+0

Прошу прощения, вы правы - проблема возникла сегодня, и я проверил время сервера. Теперь я понял, что ntp настроен неправильно. Большое спасибо за вашу помощь! – airween

Смежные вопросы