i have a big problem with this code. I try to write my first facebook app. But this code cant get email from user, and i dont know why. Can someone help me?
require_once 'phpmailer.php';
require_once 'facebook.php';
error_reporting(0);
//Application Configurations
$app_id = 'MY APP ID';
$app_secret = 'MY SECRET ID';
$site_url = 'MY SITE URL';
// Create our application instance
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie'=>true,
));
$user = $facebook->getUser();
if($user == 0){
$user = $facebook->getUser();
}
if($user){
$user_profile=$facebook->api('/me');
$logoutUrl= $facebook->getLogoutUrl();
if(empty($_POST['send'])){
echo"<form method='POST'>";
echo"Hi ".$user_profile['name']."</br>";
echo"<textarea name='message' rows='6' cols='80'>";
echo"</textarea>";
echo"<input type='submit' name='send' value='send'>";
echo"</form>";
}
if(!empty($_POST['send'])&& empty($_POST['message'])){
echo "Empty message";
}
if(!empty($_POST['send'])){
$mail = new PHPMailer();
$mail->SetFrom($_POST['mail'],$user_profile['name']);
$mail->CharSet="utf-8";
$address="[email protected]";
$mail->AddAddress($address," ");
$mail->Subject="message from facebook";
$wiadomosc='Message from user'.$user_profile['name'].'</br>'.$_POST['message'];
$mail->MsgHTML($message);
if($mail->Send()){
echo "Send to: ".$user_profile['email'];
}
else{
echo "Error:".$mail->ErrorInfo;
}
}
}
else {
$perm = array('scope'=>'email');
$loginUrl =$facebook->getLoginUrl($perm);
}
in App setting i have User & Friend Permissions email , so where is the error ? This app work fine without scope
require_once "facebook.php";
$facebook = new Facebook(array('appId' => '482455065177441', 'secret' => '0e484981225df74f1170c29185aa8690'));
$user_fb = $facebook->getUser();
if($user_fb == 0)
{
$user_fb = $facebook->getUser();
}
if ($user_fb) // Check user's FB user ID has getting or not
{
$user_profile = $facebook->api('/me');
$logoutUrl = $facebook->getLogoutUrl();
echo $user_profile['email'];
echo $user_profile['first_name'];
echo $user_profile['last_name'];
}
else // user's FB user ID has not getting load login url with email permission
{
$perms = array('scope' => 'email');
$loginUrl = $facebook->getLoginUrl($perms);
echo "<script> top.location.href='" . $loginUrl . "'</script>";
}
You are doing it right, but the email will only be displayed for the users who have set their privacy options for their emails to be shown to all, otherwise it wont display you the email of the user.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With