0

私はfacebook-loginで完全に混乱しています。コードを以下に示します。出力はhttp://beta.jokesnfunnypics.com/loginで確認できます。スコープ内ではメールで指定しましたが、リンクをクリックしてFacebookにリダイレクトすると、アプリが基本的な権限のみを要求していると表示されます。さらに、redirect_uriをhttp://beta.jokesnfunnypics.com/addとして言及しましたが、代わりに同じページにのみリダイレクトされます。繰り返しになりますが、許可を得た後、ページにも情報が表示されていません。私を助けてください。私は正しいコードをくれた人に数ドルを与える準備ができています。

<?php 
//Application Configurations
$app_id     = "XXXXXXXXXX";
$app_secret = "XXXXXXXXXXXXX";
$site_url   = "http://www.beta.jokesnfunnypics.com/add";

try{
        include_once "src/facebook.php";
}catch(Exception $e){
        error_log($e);
}
// Create our application instance
$facebook = new Facebook(array(
    'appId'     => $app_id,
'secret'    => $app_secret,
));

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


if($user){
try{
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
}catch(FacebookApiException $e){
    error_log($e);
    $user = NULL;
}

}

if($user){
    // Get logout URL
$logoutUrl = $facebook->getLogoutUrl();
}else{
// Get login URL
$loginUrl = $facebook->getLoginUrl(array(
    'scope'     => 'email',
    'redirect_uri'  => $site_url,
    ));
}


if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl();
}


?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <title>php-sdk</title>
  </head>
  <body>
    <h1>php-sdk</h1>

    <?php if ($user): ?>

      <a href="<?php echo $logoutUrl; ?>">Logout</a>
    <?php else: ?>
      <div>
        Login using OAuth 2.0 handled by the PHP SDK:
        <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
      </div>
    <?php endif ?>

    <h3>PHP Session</h3>
    <pre><?php print_r($_SESSION); ?></pre>

    <?php if ($user): ?>
  <h3>You</h3>
$_SESSION['user']="abc;
  <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

  <h3>Your User Object (/me)</h3>
  <pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
  <strong><em>You are not Connected.</em></strong>
<?php endif ?>

<h3>Public profile of Naitik</h3>
<img src="https://graph.facebook.com/naitik/picture">
<?php echo $naitik['name']; ?>
  </body>
</html>
4

3 に答える 3

1

コードから、$ loginUrl変数が2回定義され、scopeとredirect_uriが2回目に欠落しています。コードからそれらの行を削除してみてください

<?php 
$app_id     = "XXXXXXXXXX";
$app_secret = "XXXXXXXXXXXXX";
$site_url   = "http://www.beta.jokesnfunnypics.com/add";

try{
    include_once "src/facebook.php";
 }catch(Exception $e){
   error_log($e);
 }
// Create our application instance
$facebook = new Facebook(array(
'appId'     => $app_id,
'secret'    => $app_secret,
));

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

if($user){
try{
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
}catch(FacebookApiException $e){
error_log($e);
$user = NULL;
}

}

if($user){
// Get logout URL
$logoutUrl = $facebook->getLogoutUrl();
}else{
// Get login URL
$loginUrl = $facebook->getLoginUrl(array(
'scope'     => 'email',
'redirect_uri'  => $site_url,
));
}
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
 <head>
<title>php-sdk</title>
 </head>
 <body>
<h1>php-sdk</h1>

<?php if ($user): ?>

  <a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
  <div>
    Login using OAuth 2.0 handled by the PHP SDK:
    <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
  </div>
<?php endif ?>

<h3>PHP Session</h3>
 <pre><?php print_r($_SESSION); ?></pre>

 <?php if ($user): ?>
  <h3>You</h3>
 $_SESSION['user']="abc";
 <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
 <h3>Your User Object (/me)</h3>
 <pre><?php print_r($user_profile); ?></pre>
 <?php else: ?>
 <strong><em>You are not Connected.</em></strong>
 <?php endif ?>

  <h3>Public profile of Naitik</h3>
  <img src="https://graph.facebook.com/naitik/picture">
  <?php echo $naitik['name']; ?>
  </body>
  </html>

これらのチュートリアルを参照してください。

PHPSDKを使用してFacebookでログインする

PHPを使用してFacebookでログイン(デモとダウンロード)

于 2013-05-28T07:29:20.097 に答える
0

通常、ログインURLの生成にphp sdkを使用するのではなく、手動で生成します。次の行を変更してみてください。

<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>

これに:

<a href="https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=http://beta.jokesnfunnypics.com/add&scope=email">Login with Facebook</a>
于 2013-03-24T13:13:22.630 に答える
0

PHPの正しいコード(1つの形式で3つのステップ)は、iZendによって説明されています-Facebookの構成を含むWebエンジン:http ://www.izend.org/en/identification-by-facebook 。

  1. SDKを使用してFacebookとの接続を開きます。
  2. [Facebookで接続]ボタンのURLを取得します。
  3. 接続しているユーザーの電子メールアドレス(および登録フォームの名や姓などの他の情報)を取得します。
于 2017-09-23T09:02:18.193 に答える