瀏覽代碼

created json response for instagram user data

mk200789 10 年之前
父節點
當前提交
b685e276a4

+ 3 - 0
hackathon_starter/hackathon/models.py

@@ -15,6 +15,9 @@ class Profile(models.Model):
     oauth_token = models.CharField(max_length=200)
     oauth_secret = models.CharField(max_length=200)
 
+    def __unicode__(self):
+        return unicode(self.user)
+
 class Snippet(models.Model):
     created = models.DateTimeField(auto_now_add=True)
     title = models.CharField(max_length=100, blank=True, default='')

+ 9 - 1
hackathon_starter/hackathon/scripts/instagram.py

@@ -16,6 +16,7 @@ class InstagramOauthClient(object):
 		self.client_id 		= client_id
 		self.client_secret 	= client_secret
 
+
 	def get_authorize_url(self):
 		''' Obtains the authorization url. '''
 		auth_url = authorization_url + self.client_id +'&redirect_uri=http://localhost:8000/hackathon/instagram&response_type=code'
@@ -37,7 +38,8 @@ class InstagramOauthClient(object):
 		jsonlist = json.load(content)
 		self.access_token = jsonlist['access_token']
 		self.user_data = jsonlist['user']
-		print self.access_token
+		print self.user_data
+		#print self.access_token
 
 
 	def get_tagged_media(self, tag):
@@ -56,5 +58,11 @@ class InstagramOauthClient(object):
 		print len(data)
 		return data
 
+	def get_user_info(self, access_token):
+		user_info = 'https://api.instagram.com/v1/users/32833691/?access_token='+access_token
+		req = requests.get(user_info)
+		content = json2.loads(req.content)
+		data = content['data']
+		return data
 
 

+ 1 - 0
hackathon_starter/hackathon/urls.py

@@ -18,5 +18,6 @@ urlpatterns = patterns('',
     url(r'^twilio/$', views.twilio, name='twilio'),
     url(r'^instagram/$', views.instagram, name='instagram'),
     url(r'^instagram_login/$', views.instagram_login, name='instagram_login'),
+    url(r'^instagramUser/$', views.instagramUser, name='instagramUser'),
     url(r'^tumblr_login/$', views.tumblr_login, name='tumblr_login'),
 )

+ 12 - 3
hackathon_starter/hackathon/views.py

@@ -168,7 +168,9 @@ def instagram(request):
             profile = Profile()
             profile.user = new_user
             profile.oauth_token = getInstagram.client_id
-            profile.oauth_secret = getInstagram.client_secret
+            #since instagram doesnt have oauth_secret value, using this field to temp set in access token
+            # for JSON response
+            profile.oauth_secret = getInstagram.access_token 
             profile.save()
 
         user = authenticate(username=getInstagram.user_data['username'], password='password')
@@ -180,6 +182,15 @@ def instagram(request):
     context = {'title': 'Instagram', 'tagged_media': tagged_media, 'search_tag': search_tag}
     return render(request, 'hackathon/instagram.html', context)
 
+def instagramUser(request):
+    '''Returns JSON response about a specific Instagram'''
+
+    user_id = User.objects.get(username='mk200789').id
+    access_token = Profile.objects.get(user=user_id).oauth_secret
+    parsedData = getInstagram.get_user_info(access_token)
+    return JsonResponse({ 'data': parsedData })
+
+
 ##################
 #  LINKED IN API #
 ##################
@@ -242,10 +253,8 @@ def user_login(request):
         username = request.POST.get('username')
         password = request.POST.get('password')
 
-
         user = authenticate(username=username, password=password)
 
-
         if user:
             if user.is_active:
                 login(request, user)