2015-01-21 1 views
0

django 및 python-social-auth를 사용하여 사용자 도시 또는 위치를 가져오고 저장하려고합니다. 그것은 처음 로그인하는 사용자에로드, 그래서Python-social-auth 사용자 도시 가져 오기

""" 
SOCIAL AUTH 
""" 
SOCIAL_AUTH_PIPELINE = (
    ... 
    'libs.util.associate_by_email', 
    'libs.util.load_data_new_user', 
    ... 
) 
SOCIAL_AUTH_FACEBOOK_KEY = "...." 
SOCIAL_AUTH_FACEBOOK_SECRET = "...." 
SOCIAL_AUTH_FACEBOOK_SCOPE = [ 
    'email', 
] 

그리고 파이프 라인은 다음과 같이 찾고있는 파이프 라인을 생성됩니다 :

def load_data_new_user(backend, response, user, *args, **kwargs): 
print kwargs['details'] 
if user is None: 
    if backend.name == "facebook": 
     try: 
      url = "http://graph.facebook.com/%s/picture?width=200&height=200&redirect=false" % response['id'] 
      data = json.loads(urllib2.urlopen(url).read())['data'] 
      print data 
      return {'avatar': data} 
     except StandardError: 
      return {'avatar': None} 
    else: 
     raise ValueError() 

아바타를 얻기 위해 노력하지만 방법은 내가 할 수있는 사용자 도시를 잡으시겠습니까?

답변

2
  1. 파이프 라인에 response['location']을 수행하여 위치를 가져옵니다 설정 SOCIAL_AUTH_FACEBOOK_SCOPEuser_location 범위를 추가 (자신의 프로필에 자신의 위치를 ​​기입하지 않은 사용자는 키를 가지고, 그래서 먼저 확인되지 않습니다)
+0

user_location이 (가) 뭘 찾고 있었습니까? 대단히 감사합니다. 그 영광은 당신에게서 오는 메시지를받습니다. 이 위대한 일을 축하드립니다. –

+0

"이벤트"에 대해 어떻게 같은 작업을 수행 할 수 있습니까? 나는 user_events을 얻고 싶은, 그래서 SOCIAL_AUTH_FACEBOOK_SCOPE = 사용하여 넣어 [ '이메일', 'USER_LOCATION', 을 'user_events' ]과 페이스 북을 위해 일하지만, [] 응답에 대한 이벤트를 수신하기 위해 노력하지 않습니다. –

+0

해당 API를 호출해야합니다. 범위는 특정 엔드 포인트에 대한 액세스 만 허용합니다. https://developers.facebook.com/docs/graph-api/reference/v2.2/user/에서 문서를 확인하십시오. 이벤트. – omab