I'm writing an app for a client that needs to write data to his Google Drive. I'm following the Python tutorial here. However, I'm getting an error.
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
"client_id.json",
scopes=["https://www.googleapis.com/auth/drive.file"]
)
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f780bd04378>
web_1 | Traceback (most recent call last):
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/utils/autoreload.py", line 228, in wrapper
web_1 | fn(*args, **kwargs)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/core/management/commands/runserver.py", line 124, in inner_run
web_1 | self.check(display_num_errors=True)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/core/management/base.py", line 359, in check
web_1 | include_deployment_checks=include_deployment_checks,
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/core/management/base.py", line 346, in _run_checks
web_1 | return checks.run_checks(**kwargs)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/core/checks/registry.py", line 81, in run_checks
web_1 | new_errors = check(app_configs=app_configs)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/core/checks/urls.py", line 16, in check_url_config
web_1 | return check_resolver(resolver)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/core/checks/urls.py", line 26, in check_resolver
web_1 | return check_method()
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/urls/resolvers.py", line 256, in check
web_1 | for pattern in self.url_patterns:
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
web_1 | res = instance.__dict__[self.name] = self.func(instance)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/urls/resolvers.py", line 407, in url_patterns
web_1 | patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/utils/functional.py", line 35, in __get__
web_1 | res = instance.__dict__[self.name] = self.func(instance)
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/urls/resolvers.py", line 400, in urlconf_module
web_1 | return import_module(self.urlconf_name)
web_1 | File "/virtualenv/lib/python3.5/importlib/__init__.py", line 126, in import_module
web_1 | return _bootstrap._gcd_import(name[level:], package, level)
web_1 | File "<frozen importlib._bootstrap>", line 986, in _gcd_import
web_1 | File "<frozen importlib._bootstrap>", line 969, in _find_and_load
web_1 | File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
web_1 | File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
web_1 | File "<frozen importlib._bootstrap_external>", line 665, in exec_module
web_1 | File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
web_1 | File "/app/urls.py", line 11, in <module>
web_1 | ] + aldryn_addons.urls.patterns() + i18n_patterns(
web_1 | File "/virtualenv/lib/python3.5/site-packages/django/conf/urls/__init__.py", line 50, in include
web_1 | urlconf_module = import_module(urlconf_module)
web_1 | File "/virtualenv/lib/python3.5/importlib/__init__.py", line 126, in import_module
web_1 | return _bootstrap._gcd_import(name[level:], package, level)
web_1 | File "<frozen importlib._bootstrap>", line 986, in _gcd_import
web_1 | File "<frozen importlib._bootstrap>", line 969, in _find_and_load
web_1 | File "<frozen importlib._bootstrap>", line 958, in _find_and_load_unlocked
web_1 | File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
web_1 | File "<frozen importlib._bootstrap_external>", line 665, in exec_module
web_1 | File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
web_1 | File "/app/authenticate/urls.py", line 3, in <module>
web_1 | from . import views
web_1 | File "/app/authenticate/views.py", line 106, in <module>
web_1 | scopes=["https://www.googleapis.com/auth/drive.metadata.readonly"]
web_1 | File "/virtualenv/lib/python3.5/site-packages/google_auth_oauthlib/flow.py", line 172, in from_client_secrets_file
web_1 | client_config = json.load(json_file)
web_1 | File "/usr/local/lib/python3.5/json/__init__.py", line 268, in load
web_1 | parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
web_1 | File "/usr/local/lib/python3.5/json/__init__.py", line 319, in loads
web_1 | return _default_decoder.decode(s)
web_1 | File "/usr/local/lib/python3.5/json/decoder.py", line 339, in decode
web_1 | obj, end = self.raw_decode(s, idx=_w(s, 0).end())
web_1 | File "/usr/local/lib/python3.5/json/decoder.py", line 355, in raw_decode
web_1 | obj, end = self.scan_once(s, idx)
web_1 | json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 12 column 3 (char 534)