2011-01-19 5 views
1

이미 내 프로젝트에 django-facebookconnect를 통합했지만 사용자 로그인 이메일 필드가 비어있을 때이 앱이 사용자 이메일을 저장하지 않는다는 것을 의미합니까 ??django-facebookconnect로 facebook 사용자의 이메일을받을 방법이 있습니까?

는 않는 것 같다 :

user = User(username=request.facebook.uid, 
        password=sha.new(str(random.random())).hexdigest()[:8], 
        email=profile.email) 

을하지만 난 그것을 이메일을 저장하지 않는 검사 할 때이 오류 또는 페이스 북의 제한이다?

답변

0

extended permission을 페이스 북에서 받아야합니다.

<?php 
$app_id = "YOUR_APP_ID"; 
    $app_sec = "APP_SEC"; 
$canvas_page = "APP_CANVAS_PAGE_URL"; 
$scope = "&scope=user_photos,email,publish_stream";   $auth_url"http://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" .  urlencode($canvas_page).$scope; 
$signed_request = $_REQUEST["signed_request"]; 
list($encoded_sig, $payload) = explode(".", $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, "-_", "+/")), true); 
if (empty($data["user_id"])) { 
echo(""); } 
$access_token = $data["oauth_token"]; 
$user_id = $data["user_id"]; 
    $user = json_decode(file_get_contents("https://graph.facebook.com/me? access_token=" .   $access_token)); 
function get_facebook_cookie($app_id, $application_secret) { 
$args = array(); 
parse_str(trim($COOKIE["fbs" . $app_id], "\""), $args); 
    ksort($args); 
$payload = ""; 
foreach ($args as $key => $value) { 
if ($key != "sig") { 
$payload .= $key . "=" . $value; 
} 
} 
if (md5($payload . $application_secret) != $args["sig"]) { 
return null; 
} 
return $args; 
} 
$cookie = get_facebook_cookie($app_id, $app_sec); 
?> 
+0

안녕 Damodaran! 팁을 주셔서 감사합니다.이 페이지에서 JS SDK를 사용하여 사용자 권한을 요청하는 방법을 찾았습니다. http://phdrocks.wordpress.com/2010/03/08/getting-extended-permissions-in-facebook/ – marman

관련 문제