У меня есть приложение, которое работает с dev_appserver.py
на моей машине. Развернуть его успешно:client_secrets.json файл нечитабельно после развертывания в GAE
[email protected]:~$ appcfg.py update myapp/
03:03 PM Host: appengine.google.com
03:03 PM Application: myapp; version: 1
...
03:03 PM Completed update of app: myapp, version: 1
Мое приложение использует API Google, так это развертывание включает в себя client_secrets.json
файл, который живет в корне моей папке проекта. И кажется, что он правильно развернут, потому что я получаю его при повторной загрузке моего приложения (с appcfg.py download_app -A myapp -V 1 ~/myapp
).
Однако при открытии страницы, которая вызывает сценарий, нуждающийся доступ к client_secrets.json
, я получаю Error: Server Error
, и вот что экземпляр регистрирует шоу (MyApp и MyId цензура):
Traceback (most recent call last):
File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 196, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler
handler = __import__(path[0])
File "/base/data/home/apps/s~myapp/1.MYID/myapp.py", line 42, in <module>
YOUTUBE_READ_WRITE_SCOPE)
File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/util.py", line 128, in positional_wrapper
return wrapped(*args, **kwargs)
File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/appengine.py", line 854, in __init__
client_type, client_info = clientsecrets.loadfile(filename, cache=cache)
File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/clientsecrets.py", line 145, in loadfile
return _loadfile(filename)
File "/base/data/home/apps/s~myapp/1.MYID/oauth2client/clientsecrets.py", line 107, in _loadfile
raise InvalidClientSecretsError('File not found: "%s"' % filename)
InvalidClientSecretsError: File not found: "/base/data/home/apps/s~myapp/1.MYID/client_secrets.json"
Здесь находятся линий 41 и 42 из myapp.py
:
decorator = OAuth2DecoratorFromClientSecrets(CLIENT_SECRETS,
YOUTUBE_READ_WRITE_SCOPE)
и вот CLIENT_SECRETS
:
CLIENT_SECRETS = os.path.join(os.path.dirname(__file__), 'client_secrets.json')
Что я делаю неправильно?
EDIT: Murph на #appengine упоминалось, что может исходить от неправильной конфигурации app.yaml
, и что я должен «Убедитесь, что это не в app.yaml
время служил в качестве статического файла, и убедитесь, что какой-либо из вашего собственного кода Безразлично» t решит обслуживать его ", но даже после удаления всех статических обработчиков в этот файл проблема сохраняется. Вот pastebin to my app.yaml. И, говоря об этом, я заметил, что если я оставлю client_secrets.json и развернуть, я вижу «Клонирование 6 статических файлов». Затем, если я удалю его и повторно развернуту, я вижу «Клонирование 5 статических файлов». Это подтверждает, что все еще есть что-то в моем app.yaml
, которое соответствует client_secrets.json
, или эти отдельные механизмы?
тайны находится в корневом каталоге; Вы пробовали: decorator = OAuth2DecoratorFromClientSecrets ('client_secrets.json', YOUTUBE_READ_WRITE_SCOPE) – voscausa
@voscausa Да, я сделал такую же ошибку: - /. Примечание. Я только что сделал редактирование в конце моего оригинального сообщения, это дает вам другие идеи? Благодаря! –