Есть ли способ получить электронную почту пользователя facebook с помощью django-facebookconnect? - PullRequest
1 голос
/ 19 января 2011

Я уже интегрировал django-facebookconnect в свой проект, но когда поле адреса электронной почты для входа пользователя остается пустым, я имею в виду, что это приложение не сохраняет почту пользователя ??

Вроде как:

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

Но когда я проверяю, это не сохраняет электронную почту, это ошибка или ограничение facebook?

1 Ответ

0 голосов
/ 19 января 2011

Вам необходимо получить расширенное разрешение от Facebook.

<?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); 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...