2013-04-28 4 views
1

나는 응용 프로그램을 만들었습니다. 전자 메일과 이름의 두 필드가있는 양식이 있습니다. 페이 스북 (Facebook)으로 로그인 할 수있는 버튼이 있으며 그 후에 사용자 이름과 이메일을 받게됩니다.페이스 북에서 이메일을받는 방법

나는 여러 가지 방법을 시도했다. 이름 및 기타 세부 정보를 얻을 수 있지만 사용자 이메일을받을 수 없습니다. 나는 fql을 사용하여 이메일을 받았지만 얻지 못했다. 아래는 코드입니다. 나는 PHP에 의해 그것을 되찾고 싶다.

$fql = 'SELECT contact_email FROM user WHERE uid = '.$user; 
$res = $facebook->api(array('method' => 'fql.query', 
          'query' => $fql)); 

누구든지 이메일 수신 방법을 알려줄 수 있습니까? 어떤 도움을받을 수 있습니다. 이메일 권한을 가진

답변

3

사용 facebook->getLoginUrl, https://developers.facebook.com/docs/reference/login/email-permissions/ (scope' => 'email')

facebook.php 참조 :

<? 
error_reporting(E_ALL); 
ini_set('display_errors','on'); 
require 'facebook-php-sdk-master/src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => <YOUR AppId>, 
    'secret' => <YOUR APPsecret>, 
)); 

$applicationurl = 'http://testdrive.nl/facebook.php'; 

// Get User ID 
$user = $facebook->getUser(); 

if(empty($user)) 
{ 
    $params = array(
    'scope' => 'email', 
    'redirect_uri' => $applicationurl 
    ); 

$loginUrl = $facebook->getLoginUrl($params); 
header('Location: ' . $loginUrl ."\r\n"); 
exit; 
} 

$fql = 'SELECT contact_email FROM user WHERE uid = '.$user; 
$res = $facebook->api(array('method' => 'fql.query', 
          'query' => $fql)); 
//var_dump($res); 
echo $res[0]['contact_email']; 
+0

답변을 주셔서 감사합니다. Bass Jobsen. 이제 이메일을 받았습니다. 다시 감사합니다. –

1

당신은 이메일을 얻기 위해 사용자의 추가 권한을 요구해야합니다 주소. 이 허가는 적절하게는 email입니다.

인증 방법과 사용자 로그인 방법에 따라 scope 매개 변수에 email 권한을 추가해야합니다. 이 scope 매개 변수는 사용자가 요청할 수있는 권한을 추가하는 곳입니다. 사용자가 응용 프로그램을 설치할 때 이러한 권한을 요청할 수 있지만 사용자가 응용 프로그램을 설치 한 후에 권한을 요청할 수도 있습니다.

전자 메일 권한에 대한 자세한 내용은 관련 문서의 this link을 확인하십시오.