def get(self): verifier = self.request.GET.get('oauth_verifier') user = users.get_current_user() if not user: logging.warning("current user is not logged in") self.redirect("/") logging.info("running callback for user: %s" % user.user_id()) social_users = model.SocialKeysForUsers.all() social_users.filter("user_id =",user.user_id()) user_model = social_users.get() if not user_model == None and user_model.request_token_key and user_model.request_token_secret: try: auth = OAuthHandler(social_keys.TWITTER_CONSUMER_KEY, social_keys.TWITTER_CONSUMER_SECRET) auth.set_request_token(user_model.request_token_key, user_model.request_token_secret) auth.get_access_token(verifier) user_model.access_token_key = auth.access_token.key user_model.access_token_secret = auth.access_token.secret api = API(auth) api_is_working = api.test() user_model.shortcut_social_username = api.me().screen_name user_model.put() memcache.add("twitter_user:%s" % user.user_id(), user_model.shortcut_social_username, 60) #self.response.out.write("twitter user name: %s\n" % user_model.shortcut_social_username) logging.debug("user access tokens have been set") self.redirect("/") except TweepError: logging.error( "TweepError error API is could not fetch me: %s" % user.user_id()) user_model.access_token_key = None user_model.access_token_secret = None user_model.put() self.redirect(URL_STATIC_ERROR_DEFAULT) except CapabilityDisabledError: logging.error( "Capability Disabled Error could not write for: %s" % user.user_id()) self.redirect(URL_STATIC_ERROR_DEFAULT) else: logging.warning("user model is not setup correctly: %s for user % " % (user_model, user.user_id())) self.redirect("/")
def get(self): verifier = self.request.GET.get('oauth_verifier') user = users.get_current_user() if not user: logging.warning("current user is not logged in") self.redirect("/") logging.info("running callback for user: %s" % user.user_id()) social_users = model.SocialKeysForUsers.all() social_users.filter("user_id =", user.user_id()) user_model = social_users.get() if not user_model == None and user_model.request_token_key and user_model.request_token_secret: try: auth = OAuthHandler(social_keys.TWITTER_CONSUMER_KEY, social_keys.TWITTER_CONSUMER_SECRET) auth.set_request_token(user_model.request_token_key, user_model.request_token_secret) auth.get_access_token(verifier) user_model.access_token_key = auth.access_token.key user_model.access_token_secret = auth.access_token.secret api = API(auth) api_is_working = api.test() user_model.shortcut_social_username = api.me().screen_name user_model.put() memcache.add("twitter_user:%s" % user.user_id(), user_model.shortcut_social_username, 60) #self.response.out.write("twitter user name: %s\n" % user_model.shortcut_social_username) logging.debug("user access tokens have been set") self.redirect("/") except TweepError: logging.error( "TweepError error API is could not fetch me: %s" % user.user_id()) user_model.access_token_key = None user_model.access_token_secret = None user_model.put() self.redirect(URL_STATIC_ERROR_DEFAULT) except CapabilityDisabledError: logging.error( "Capability Disabled Error could not write for: %s" % user.user_id()) self.redirect(URL_STATIC_ERROR_DEFAULT) else: logging.warning( "user model is not setup correctly: %s for user % " % (user_model, user.user_id())) self.redirect("/")
def get_template_state_for_user(self): _template_values = {} user = users.get_current_user() user_model = None if user: logging.info("user: %s",user.nickname) social_users = model.SocialKeysForUsers.all() social_users.filter("user_id =",user.user_id()) user_model = social_users.get() if not user_model == None: if user_model.access_token_key and user_model.access_token_secret: _template_values["needs_twitter_auth"] = False auth = OAuthHandler(social_keys.TWITTER_CONSUMER_KEY, social_keys.TWITTER_CONSUMER_SECRET) auth.set_access_token(user_model.access_token_key,user_model.access_token_secret) api = API(auth) api_is_working = api.test() if not api_is_working: logging.warning("api is NOT working: %s",api_is_working) try: twitter_user = memcache.get("twitter_user:%s" % user.user_id()) if twitter_user == None: twitter_user = api.me() memcache.add("twitter_user:%s" % user.user_id(), twitter_user, 60) logging.info(twitter_user) _template_values["twitter_user"] = twitter_user except TweepError: logging.error( "TweepError error has occured, clearing access tokents") user_model.access_token_key = None user_model.access_token_secret = None user_model.put() _template_values["needs_twitter_auth"] = True else: _template_values["needs_twitter_auth"] = True else: _template_values["needs_twitter_auth"] = True user_model = model.SocialKeysForUsers(user_id=user.user_id()) user_model.put() else: _template_values["needs_twitter_auth"] = True logging.warning("user is empty") redirect_url = None if _template_values["needs_twitter_auth"] and not user_model == None: auth = OAuthHandler(social_keys.TWITTER_CONSUMER_KEY, social_keys.TWITTER_CONSUMER_SECRET,"https://%s/callback" % self.request.host) redirect_url = auth.get_authorization_url() user_model.request_token_key = auth.request_token.key user_model.request_token_secret = auth.request_token.secret user_model.put() _template_values["redirect_url"] = redirect_url _template_values["logout_url"] = users.create_logout_url("/") _template_values["login_url"] = users.create_login_url("/") _template_values["user"] = user _template_values["user_model"] = user_model util = helpers.Util() _template_values["next_mix_run_time"] = util.get_next_mix_runtime() _template_values["current_server_time"] = util.get_current_time_for_show() return _template_values
def get_template_state_for_user(self): _template_values = {} user = users.get_current_user() user_model = None if user: logging.info("user: %s", user.nickname) social_users = model.SocialKeysForUsers.all() social_users.filter("user_id =", user.user_id()) user_model = social_users.get() if not user_model == None: if user_model.access_token_key and user_model.access_token_secret: _template_values["needs_twitter_auth"] = False auth = OAuthHandler(social_keys.TWITTER_CONSUMER_KEY, social_keys.TWITTER_CONSUMER_SECRET) auth.set_access_token(user_model.access_token_key, user_model.access_token_secret) api = API(auth) api_is_working = api.test() if not api_is_working: logging.warning("api is NOT working: %s", api_is_working) try: twitter_user = memcache.get("twitter_user:%s" % user.user_id()) if twitter_user == None: twitter_user = api.me() memcache.add("twitter_user:%s" % user.user_id(), twitter_user, 60) logging.info(twitter_user) _template_values["twitter_user"] = twitter_user except TweepError: logging.error( "TweepError error has occured, clearing access tokents" ) user_model.access_token_key = None user_model.access_token_secret = None user_model.put() _template_values["needs_twitter_auth"] = True else: _template_values["needs_twitter_auth"] = True else: _template_values["needs_twitter_auth"] = True user_model = model.SocialKeysForUsers(user_id=user.user_id()) user_model.put() else: _template_values["needs_twitter_auth"] = True logging.warning("user is empty") redirect_url = None if _template_values["needs_twitter_auth"] and not user_model == None: auth = OAuthHandler(social_keys.TWITTER_CONSUMER_KEY, social_keys.TWITTER_CONSUMER_SECRET, "https://%s/callback" % self.request.host) redirect_url = auth.get_authorization_url() user_model.request_token_key = auth.request_token.key user_model.request_token_secret = auth.request_token.secret user_model.put() _template_values["redirect_url"] = redirect_url _template_values["logout_url"] = users.create_logout_url("/") _template_values["login_url"] = users.create_login_url("/") _template_values["user"] = user _template_values["user_model"] = user_model util = helpers.Util() _template_values["next_mix_run_time"] = util.get_next_mix_runtime() _template_values[ "current_server_time"] = util.get_current_time_for_show() return _template_values