3

このコードには大きな問題があります。私は最初の Facebook アプリを作成しようとしています。しかし、このコードはユーザーからメールを受け取ることができず、その理由がわかりません。誰かが私を助けることができますか?

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="therimsilua@gmail.com";
        $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);       
}

アプリの設定で、私はユーザーと友達の許可メールを持っているので、エラーはどこにありますか? このアプリはスコープなしで正常に動作します

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>";        
}
4

2 に答える 2

1

あなたはそれを正しくやっていますが、電子メールは、電子メールのプライバシーオプションをすべての人に表示するように設定したユーザーにのみ表示されます。それ以外の場合、ユーザーの電子メールは表示されません.

于 2013-07-31T09:07:19.580 に答える