0

私を夢中にさせる次の問題があります。ユーザーの識別には、Facebook PHP SDK (https://github.com/facebook/php-sdk/) で公開されているサンプル コードを使用します。ほとんどのテスト ユーザーでは正常に機能しますが、一部のユーザーではインスタンスの作成が機能しません。同じマシンと別のマシンで試しましたが、何も変わりません。各ユーザーは、開発者アカウントでテスト ユーザーとして正しく設定されています。

原因は何ですか?よろしくお願いします。

    require '../lib/facebook.php';

    // Create our Application instance (replace this with your appId and secret).
    $facebook = new Facebook(array(
      'appId'  => 'XXXXXXXXXX',
      'secret' => 'XXXXXXXXXXX',
    ));

    // 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;
      }
    }

    // Login or logout url will be needed depending on current user state.
    if ($user) {
      $logoutUrl = $facebook->getLogoutUrl();
    } else {
      $loginUrl = $facebook->getLoginUrl(array(
            'scope' => 'publish_stream, publish_actions',   
            'redirect_uri' => 'http://apps.facebook.com/xxxxx/' 
    ));
    }
    ?>
    <!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; ?>" target="_top">Login with Facebook</a>
          </div>
        <?php endif ?>

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

        <?php if ($user): ?>
          <h3>You</h3>
          <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 ?>

        </body>
   </html>
4

1 に答える 1

0

私はついに答えを見つけました。問題はコードに関連していませんでした。これは、テスト ユーザーが招待の承認を要求する通知をバイパスし、代わりにアプリの URL を直接入力したことが原因でした。

テスト ユーザーを削除して、再作成する必要があります。次に、テスト ユーザーは新しい通知を受け取り、それを受け入れる必要があります。

于 2012-07-09T17:32:46.523 に答える