]> git.parisson.com Git - django-social-auth.git/commitdiff
Added VK_EXTRA_DATA to pass extra fields when gathering the user profile data
authorslon7 <ilya.suslonov@mail.ru>
Thu, 26 Apr 2012 07:10:26 +0000 (13:10 +0600)
committerslon7 <ilya.suslonov@mail.ru>
Thu, 26 Apr 2012 07:10:26 +0000 (13:10 +0600)
README.rst
social_auth/backends/contrib/vkontakte.py

index e515169d645d441e18ec59ed15a522618ba46225..a8906af48048f4ec30c4a7a6f9cfdc35b214540b 100644 (file)
@@ -922,6 +922,10 @@ Vkontakte uses OAuth v2 for Authentication
       VK_APP_ID = ''
       VK_API_SECRET = ''
 
+- Define VK_EXTRA_DATA to pass extra fields when gathering the user profile data, like::
+
+      VK_EXTRA_DATA = 'photo,country'
+
 - Also it's possible to define extra permissions with::
 
      VK_EXTRA_SCOPE = [...]
index 8166c4c7032ed23b48ccef90422a72639292ce54..0f91faba6bd6455ea31da25a5d77ac84e28177e3 100644 (file)
@@ -15,6 +15,7 @@ VK_AUTHORIZATION_URL = 'http://oauth.vk.com/authorize'
 VK_ACCESS_TOKEN_URL = 'https://oauth.vk.com/access_token'
 VK_USER_DATA_URL = 'https://api.vk.com/method/users.get'
 VK_SERVER = 'vk.com'
+VK_DEFAULT_DATA = 'first_name,last_name,screen_name,nickname'
 
 
 class VkontakteBackend(OAuthBackend):
@@ -49,11 +50,16 @@ class VkontakteAuth(BaseOAuth2):
 
     def user_data(self, access_token, response, *args, **kwargs):
         """Loads user data from service"""
+        fields = VK_DEFAULT_DATA
+        if setting('VK_EXTRA_DATA'):
+            fields += ',' + setting('VK_EXTRA_DATA')
+
         params = {'access_token': access_token,
-                  'fields': 'first_name,last_name,screen_name,nickname',
-                  'uids': response.get('user_id')
-                 }
+                  'fields': fields,
+                  'uids': response.get('user_id')}
+
         url = VK_USER_DATA_URL + '?' + urlencode(params)
+
         try:
             return simplejson.load(urlopen(url)).get('response')[0]
         except (ValueError, IndexError):