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 = [...]
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):
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):