docs: def from_secrets_file(client_secrets, storage=None, flags=None,
                        storage_path=None, api_version="v3", readonly=False,
                        http_client=None, ga_hook=None):
      """Create a client for a web or installed application.
  
      Create a client with a client secrets file.
  
      Args:
          client_secrets: str, path to the client secrets file (downloadable from
                               Google API Console)
        storage: oauth2client.client.Storage, a Storage implementation to store
                 credentials.
        storage_path: str, path to a file storage.
        readonly: bool, default False, if True only readonly access is requested
                  from GA.
        http_client: httplib2.Http, Override the default http client used.
        ga_hook: function, a hook that is called every time a query is made
                 against GA.
      """
      scope = GOOGLE_API_SCOPE_READONLY if readonly else GOOGLE_API_SCOPE
      flow = flow_from_clientsecrets(client_secrets,
                                     scope=scope)
      storage = _get_storage(storage, storage_path)
      credentials = storage.get()
      if credentials is None or credentials.invalid:
          credentials = run_flow(flow, storage, flags)
  
      return Client(_build(credentials, api_version, http_client), ga_hook)