本文整理汇总了Python中inbox.models.backends.gmail.GmailAccount.sync_state方法的典型用法代码示例。如果您正苦于以下问题:Python GmailAccount.sync_state方法的具体用法?Python GmailAccount.sync_state怎么用?Python GmailAccount.sync_state使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类inbox.models.backends.gmail.GmailAccount
的用法示例。
在下文中一共展示了GmailAccount.sync_state方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_account
# 需要导入模块: from inbox.models.backends.gmail import GmailAccount [as 别名]
# 或者: from inbox.models.backends.gmail.GmailAccount import sync_state [as 别名]
def create_account(self, db_session, email_address, response):
email_address = response.get('email')
# See if the account exists in db, otherwise create it
try:
account = db_session.query(GmailAccount) \
.filter_by(email_address=email_address).one()
except NoResultFound:
namespace = Namespace()
account = GmailAccount(namespace=namespace)
# We only get refresh tokens on initial login (or failed credentials)
# otherwise, we don't force the login screen and therefore don't get a
# refresh token back from google.
new_refresh_token = response.get('refresh_token')
if new_refresh_token:
account.refresh_token = new_refresh_token
else:
if not account.refresh_token or account.sync_state == 'invalid':
# We got a new auth without a refresh token, so we need to back
# out and force the auth flow, since we don't already have
# a refresh (or the one we have doesn't work.)
raise OAuthError("Missing refresh token")
tok = response.get('access_token')
expires_in = response.get('expires_in')
token_manager.cache_token(account, tok, expires_in)
account.scope = response.get('scope')
account.email_address = email_address
account.family_name = response.get('family_name')
account.given_name = response.get('given_name')
account.name = response.get('name')
account.gender = response.get('gender')
account.g_id = response.get('id')
account.g_user_id = response.get('user_id')
account.g_id_token = response.get('id_token')
account.link = response.get('link')
account.locale = response.get('locale')
account.picture = response.get('picture')
account.home_domain = response.get('hd')
account.client_id = response.get('client_id')
account.client_secret = response.get('client_secret')
account.sync_contacts = response.get('contacts', True)
account.sync_events = response.get('events', True)
try:
self.verify_config(account)
except GmailSettingError as e:
raise UserRecoverableConfigError(e)
# Hack to ensure that account syncs get restarted if they were stopped
# because of e.g. invalid credentials and the user re-auths.
# TODO(emfree): remove after status overhaul.
if account.sync_state != 'running':
account.sync_state = None
return account