-1

当用户仅使用 fb graph api 登录我的 facebook canvas 应用程序时,我想获取用户电子邮件?我不想使用 facebook php sdk,因为我无法使用此代码处理它(实际上,我尝试了很多但失败了)Plz帮助

$app_id = "xxxxxxx";

$canvas_page = "xxxxxxxx";

$auth_url = "http://www.facebook.com/dialog/oauth?client_id=" . $app_id . "&redirect_uri=" . urlencode($canvas_page);

$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("<script> top.location.href='" . $auth_url . "'</script>");
} 
else 
{
    echo ("Welcome User: " . $data["user_id"]);
    echo ("Welcome User: " . $data["email"]);   //i tried this
}
4

1 回答 1

0

'email' 字段可以在 FB API 的user对象中找到,但前提是您已明确请求email权限。有很多方法可以请求此权限,例如

$param['scope'] = "email";
$login_url = $facebook->getLoginUrl($param);
echo 'Please <a href="' . $login_url . '">login.</a>';

将打印一个授权电子邮件权限的登录 url。然后,您可以通过用户对象检索电子邮件,如下例所示:

$user_profile = $facebook->api('/me','GET');
echo "email: ".$user_profile['email'];

注意:应用程序无法获取用户朋友的电子邮件地址。

于 2013-04-15T13:22:47.277 回答