-1

ユーザーがfbグラフAPIのみを使用してFacebookキャンバスアプリケーションにログインしたときにユーザーの電子メールを取得したいですか?このコードでは処理できないため、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 に答える