From: slon7 Date: Thu, 26 Apr 2012 07:10:26 +0000 (+0600) Subject: Added VK_EXTRA_DATA to pass extra fields when gathering the user profile data X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=c91ccc2331195156c6ec3338920d6d1b172b6789;p=django-social-auth.git Added VK_EXTRA_DATA to pass extra fields when gathering the user profile data --- diff --git a/README.rst b/README.rst index e515169..a8906af 100644 --- a/README.rst +++ b/README.rst @@ -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 = [...] diff --git a/social_auth/backends/contrib/vkontakte.py b/social_auth/backends/contrib/vkontakte.py index 8166c4c..0f91fab 100644 --- a/social_auth/backends/contrib/vkontakte.py +++ b/social_auth/backends/contrib/vkontakte.py @@ -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):