Привет! Я хочу использовать таблицы для регистрации событий в моей электронной таблице Google. Это будет запланировано, таким образом, развернуто на веб-сервере, в частности Heroku.
Я использую только эти строки для аутентификации:
import pygsheets gc = pygsheets.authorize()
Локально работает, работает нормально, так как мне нужно скопировать ссылку для аутентификации и затем вставить код. Но что, если это на Heroku.
Я получаю эти журналы на Heroku:
2018-09-06T03:48:25.234859+00:00 app[web.1]: Your browser has been opened to visit: 2018-09-06T03:48:25.234861+00:00 app[web.1]: 2018-09-06T03:48:25.234870+00:00 app[web.1]: https://accounts.google.com/o/oauth2/auth?client_id=XXXXXXXX-iXXXXXXXXXXXXXX.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspreadsheets+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&access_type=offline&response_type=code 2018-09-06T03:48:25.234872+00:00 app[web.1]:
Я попытался скопировать ссылку, она попросила меня войти в систему. Конечной точкой была эта ссылка:
http://localhost:8080/?code=4/UgAXXXX6cdAt5Cnuj7yvTeoUgtfWyCvi8e2Rw-cxWiBVhACvom1qVgln0OfE1mOz3zENCXXXXvsOU4daXxI#
Я не уверен, почему это localhost.
Я также занимаюсь проверкой подлинности облачных служб Google для Heroku и наткнулся на эту ССЫЛКУ .
Я создал другой ключ учетной записи службы.
и написал на моем CLI:
$ heroku config:set GOOGLE_APPLICATION_CREDENTIALS=‘keyFile.json’
Но это все еще не решает проблему. Я все еще получаю эти журналы:
2018-09-06T03:55:59.083071+00:00 app[web.1]: Your browser has been opened to visit: 2018-09-06T03:55:59.083072+00:00 app[web.1]: 2018-09-06T03:55:59.083075+00:00 app[web.1]: https://accounts.google.com/o/oauth2/auth?client_id=XXXXX-isqd84kjnfu7o6XXXX6p79crvco2ms.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8090%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspreadsheets+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&access_type=offline&response_type=code 2018-09-06T03:55:59.083076+00:00 app[web.1]: 2018-09-06T03:55:59.083078+00:00 app[web.1]: If your browser is on a different machine then exit and re-run this 2018-09-06T03:55:59.083080+00:00 app[web.1]: application with the command-line parameter 2018-09-06T03:55:59.083082+00:00 app[web.1]: 2018-09-06T03:55:59.083084+00:00 app[web.1]: --noauth_local_webserver
Мой каталог Кстати,
- app.py - client_secret.json - keyfile.json - Procfile - requirements.txt
Подробнее: Я также пытался использовать:
gc = pygsheets.authorize(service_account_file='keyfile.json')
Но тот же вывод на Heroku.
Я думаю, что ваша проблема в том, что вы используете разные версии таблиц на своем сайте и в Heroku. На вашем локальном вы используете мастер-версию. но на сервере вы используете 1.1.4, который должен установить параметр outh_nonlocal, чтобы разрешить авторизацию на сервере. также параметр для service_account был изменен с service_file.
outh_nonlocal
service_file