浏览代码

twitter template + scripts for login

mk200789 10 年之前
父节点
当前提交
1958c6daa5

+ 68 - 0
hackathon_starter/hackathon/scripts/twitter.py

@@ -0,0 +1,68 @@
+import urlparse
+import oauth2 as oauth
+
+request_token_url = 'https://api.twitter.com/oauth/request_token'
+access_token_url = 'https://api.twitter.com/oauth/access_token'
+authorize_url = 'https://api.twitter.com/oauth/authorize'
+
+class TwitterOauthClient(object):
+
+	def __init__(self, consumer_key, consumer_secret, access_token, access_token_secret):
+		self.consumer_key = consumer_key
+		self.consumer_secret = consumer_secret
+		self.access_token = access_token
+		self.access_token_secret = access_token_secret
+		self.consumer = oauth.Consumer(key=self.consumer_key, secret=self.consumer_secret)
+		
+
+	def get_authorize_url(self):
+		'''
+		Obtained oauth_token and oauth_token_secret from request_token_url,
+		returns an authorize url. 
+
+		From the redirect url, we obtain the oauth verifier.
+		'''
+
+		client = oauth.Client(self.consumer)
+		resp, content = client.request(request_token_url, 'GET')
+
+		if int(resp['status']) != 200:
+			raise Exception('Invalid response %s' %resp['status'])
+
+		request_token = dict(urlparse.parse_qsl(content))
+
+		#temporary
+		self.oauth_token = request_token['oauth_token']
+		self.oauth_token_secret  = request_token['oauth_token_secret']
+		print self.oauth_token
+
+		#link to authorize app access twitter data and return to twitter api example page
+		link = authorize_url+"?oauth_token="+self.oauth_token+"&redirect_uri=http%3A%2F%2Flocalhost%3A8000/hackathon/twitter/"
+		return link
+
+	def get_access_token_url(self, oauth_verifier):
+		
+		token = oauth.Token(self.oauth_token, self.oauth_token_secret)
+		token.set_verifier(oauth_verifier)
+
+		client = oauth.Client(self.consumer, token)
+		resp, content = client.request(access_token_url, 'POST')
+		
+		if int(resp['status']) != 200:
+			raise Exception('Invalid response %s' %resp['status'])
+
+		print content
+		access_token = dict(urlparse.parse_qsl(content))
+
+		#permanent
+		self.oauth_token = access_token['oauth_token']
+		self.oauth_token_secret = access_token['oauth_token_secret']
+		self.user_id = access_token['user_id']
+		self.username = access_token['screen_name']
+
+		
+
+
+
+
+

+ 7 - 0
hackathon_starter/hackathon/templates/hackathon/twitter.html

@@ -0,0 +1,7 @@
+<!DOCTYPE html>
+<html>
+<body>
+	{% include 'hackathon/base.html' %}
+	<h1 class="text-center"> {{ title }}</h1> 
+	</div>	
+</html>