def get(self): recordtoken = OauthInfo(states="openAccount",service="twitter",emailaddr="*****@*****.**") recordtoken.put() auth = OAuthHandler(CONSUMER_KEY_TWITTER, CONSUMER_SECRET_TWITTER,self.call_back_url+"?UID="+str(recordtoken.key()),True) auth.OAUTH_HOST = 'api.twitter.com' auth.OAUTH_ROOT = '/oauth/' try : url = auth.get_authorization_url() recordtoken.states = "request_token_got" recordtoken.fromOauthToken(auth.request_token) recordtoken.put() self.redirect(url) except Exception,error_message: self.response.out.write( error_message )
def get(self): self.response.headers['Content-Type'] = 'text/plain' #-- Get access token from in coming url --# oauth_verifier=cgi.escape(self.request.get('oauth_verifier')) logging.debug("oauth_verifier is "+oauth_verifier) request_token=cgi.escape(self.request.get('oauth_token')) logging.debug("request_token is "+request_token) dbkey = cgi.escape(self.request.get('UID')) logging.debug("UID is "+ dbkey) #-- Find if token is defined in DB? --# #TODO: handle exception if search db failed Target = db.get(db.Key(dbkey)) Target.verifier = oauth_verifier if Target.service == "sina": auth1 = OAuthHandler(CONSUMER_KEY_SINA, CONSUMER_SECRET_SINA,self.call_back_url) auth1.request_token = Target.toOauthToken() auth1.get_access_token(Target.verifier.strip()) auth1.api = API(auth1) #status = auth1.api.update_status("Hello weibo! from myapp".encode("utf-8")) access_token_user_name = auth1.get_username() #-- Write to DB --# Target.fromOauthToken(auth1.access_token) Target.states = "accessTokenOK" Target.put() #-- Show info to user --# self.response.out.write('Hello '+access_token_user_name+"\nYou are verified!!") if Target.service == "twitter": auth1 = OAuthHandler(CONSUMER_KEY_TWITTER, CONSUMER_SECRET_TWITTER,self.call_back_url+"?UID="+dbkey,True) auth1.OAUTH_HOST = 'api.twitter.com' auth1.OAUTH_ROOT = '/oauth/' auth1.request_token = Target.toOauthToken() try: auth1.get_access_token(Target.verifier.strip()) # status = auth1.api.update_status("Hello weibo! from myapp".encode("utf-8")) except Exception,error_message: logging.error("Get access token failed!! ") logging.debug("Service Provider " + Target.service) logging.debug("oauth_token:" + request_token) logging.debug("oauth_verifier:" + oauth_verifier) logging.debug( error_message ) self.response.out.write( error_message ) auth1.api = API(auth1,host='api.twitter.com',search_host='api.twitter.com') user = auth1.api.verify_credentials() if user: auth1.username = user.screen_name self.response.out.write('Hello '+auth1.username+"\nYou are verified!!") else: logging.error("Cannot Get user Name!") #-- Write to DB --# Target.fromOauthToken(auth1.access_token) Target.states = "accessTokenOK" Target.put()