def func_bind(self, args, oauth_token=None): if len(args) == 1 and args[0].isalnum(): jid = self._google_user.jid if oauth_token is None: twitter_user = TwitterUser.get_by_twitter_name(None, jid) if twitter_user is None: return _('INVALID_PIN_CODE') % '' oauth_token = twitter_user.access_token_key token = oauth.Token(oauth_token) token.set_verifier(args[0].encode('UTF8')) consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET) client = oauth.Client(consumer, token) resp = client.request(twitter.ACCESS_TOKEN_URL, "POST") if not resp: return _('NETWORK_ERROR') access_token = dict(cgi.parse_qsl(resp)) if 'oauth_token' not in access_token: return _('INVALID_PIN_CODE') % args[0] if oauth_token is None: twitter_user.delete() TwitterUser.add(jid, access_token['oauth_token'], access_token['oauth_token_secret'], access_token['screen_name']) if self._google_user.enabled_user == '': self._google_user.enabled_user = access_token['screen_name'] if IdList.get_by_jid(jid, self._google_user.shard) is None: IdList.add(jid, self._google_user.shard) return _('SUCCESSFULLY_BIND') % access_token['screen_name'] else: raise NotImplementedError
def func_oauth(self, args): length = len(args) if not length or length == 2: consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET) client = oauth.Client(consumer) resp = client.request(twitter.REQUEST_TOKEN_URL, "GET") if not resp: return _('NETWORK_ERROR') self._request_token = dict(cgi.parse_qsl(resp)) oauth_token = self._request_token['oauth_token'] redirect_url = "%s?oauth_token=%s" % (twitter.AUTHORIZATION_URL, oauth_token) if not length: TwitterUser.add(self._google_user.jid, oauth_token) return _('OAUTH_URL') % redirect_url import oauth_proxy pin = oauth_proxy.login_oauth(redirect_url, args[0], args[1]) if pin == '': return _('NETWORK_ERROR') elif pin is None: return _('WRONG_USER_OR_PASSWORD') return self.func_bind([pin], oauth_token) else: raise NotImplementedError
def func_bind(self, args, oauth_token=None): if len(args) == 1 and args[0].isalnum(): jid = self._google_user.jid if oauth_token is None: twitter_user = TwitterUser.get_by_twitter_name(None, jid) if twitter_user is None: return _("INVALID_PIN_CODE") % "" oauth_token = twitter_user.access_token_key token = oauth.Token(oauth_token) token.set_verifier(args[0].encode("UTF8")) consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET) client = oauth.Client(consumer, token) resp = client.request(twitter.ACCESS_TOKEN_URL, "POST") if not resp: return _("NETWORK_ERROR") access_token = dict(cgi.parse_qsl(resp)) if "oauth_token" not in access_token: return _("INVALID_PIN_CODE") % args[0] if oauth_token is None: twitter_user.delete() TwitterUser.add( jid, access_token["oauth_token"], access_token["oauth_token_secret"], access_token["screen_name"] ) if self._google_user.enabled_user == "": self._google_user.enabled_user = access_token["screen_name"] if IdList.get_by_jid(jid, self._google_user.shard) is None: IdList.add(jid, self._google_user.shard) return _("SUCCESSFULLY_BIND") % access_token["screen_name"] else: raise NotImplementedError
def func_bind(self, args, oauth_token=None): if len(args) == 1 and args[0].isdigit(): twitter_user = None if oauth_token is None: twitter_user = TwitterUser.get_by_twitter_name(None, self._google_user.jid) if twitter_user is None: return _('INVALID_PIN_CODE') % '' oauth_token = twitter_user.access_token_key token = oauth.Token(oauth_token) if type(args[0]) != unicode: args[0] = args[0].encode('UTF8') token.set_verifier(args[0]) consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET) client = oauth.Client(consumer, token) resp = client.request(twitter.ACCESS_TOKEN_URL, "POST") if not resp: return _('NETWORK_ERROR') access_token = dict(cgi.parse_qsl(resp)) if 'oauth_token' not in access_token: return _('INVALID_PIN_CODE') % args[0] if twitter_user is not None: twitter_user.delete() TwitterUser.add(self._google_user.jid, access_token['oauth_token'], access_token['oauth_token_secret'], access_token['screen_name']) if self._google_user.enabled_user == '': self._google_user.enabled_user = access_token['screen_name'] if IdList.get_by_jid(self._google_user.jid, self._google_user.shard) is None: IdList.add(self._google_user.jid, self._google_user.shard) return _('SUCCESSFULLY_BIND') % access_token['screen_name'] else: raise NotImplementedError
def func_oauth(self, args): length = len(args) if not length or length == 2: consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET) client = oauth.Client(consumer) resp = client.request(twitter.REQUEST_TOKEN_URL) if not resp: return _('NETWORK_ERROR') self._request_token = dict(cgi.parse_qsl(resp)) oauth_token = self._request_token['oauth_token'] redirect_url = "%s?oauth_token=%s" % (twitter.AUTHORIZATION_URL, oauth_token) if not length: TwitterUser.add(self._google_user.jid, oauth_token) return _('OAUTH_URL') % redirect_url import oauth_proxy from google.appengine.api import urlfetch_errors try: pin = oauth_proxy.login_oauth(redirect_url, args[0], args[1]) except urlfetch_errors.Error: return _('NETWORK_ERROR') except twitter.TwitterAuthenticationError: return _('WRONG_USER_OR_PASSWORD') else: return self.func_bind([pin], oauth_token) else: raise NotImplementedError
def func_oauth(self, args): length = len(args) if not length or length == 2: consumer = oauth.Consumer(config.OAUTH_CONSUMER_KEY, config.OAUTH_CONSUMER_SECRET) client = oauth.Client(consumer) resp = client.request(twitter.REQUEST_TOKEN_URL, "GET") if not resp: return _("NETWORK_ERROR") self._request_token = dict(cgi.parse_qsl(resp)) oauth_token = self._request_token["oauth_token"] redirect_url = "%s?oauth_token=%s" % (twitter.AUTHORIZATION_URL, oauth_token) if not length: TwitterUser.add(self._google_user.jid, oauth_token) return _("OAUTH_URL") % redirect_url import oauth_proxy pin = oauth_proxy.login_oauth(redirect_url, args[0], args[1]) if pin == "": return _("NETWORK_ERROR") elif pin is None: return _("WRONG_USER_OR_PASSWORD") return self.func_bind([pin], oauth_token) else: raise NotImplementedError