def _authenticate(self): credentials = None if "service_account" == self._credential_type(): primary_key_file = settings.GOOGLE_ANALYTICS_PRIVATE_KEY_FILE_NAME with open(primary_key_file, 'rb') as f: private_key = f.read() credentials = ServiceAccountCredentials.from_p12_keyfil( settings.GOOGLE_ANALYTICS_CLIENT_EMAIL, private_key, self.SCOPE) else: storage = Storage(settings.GOOGLE_ANALYTICS_TOKEN_FILE_NAME) credentials = storage.get() if credentials is None or credentials.invalid: flow = flow_from_clientsecrets( settings.GOOGLE_ANALYTICS_CLIENT_SECRETS, scope=self.SCOPE) credentials = run_flow(flow, storage, self.GAFlags()) return credentials