0

次のコードを使用すると、 $user_profile = $facebook->api('/me'); 管理者ユーザーの情報が表示されますが、テスト ユーザーに切り替えると、テスト ユーザーがアプリを追加するためのアクセス許可ダイアログが表示されず、$user_profile が定義されません。

アプリが承認され、ユーザーが認証されていることを確認するという点で、すべてを適切に実行しているように見えるコードの例を見つけることができないようです。古い FB 開発者フォーラムを見ると、多くの人が新しい手順で同じ問題を抱えているようです。

コードは次のとおりです。

<?php
$appId  = "myid";
$secret = "mysecret";
$canvasurl = "http://www.example.com/myappname/";
$canvas = "http://apps.facebook.com/myappname/";
$scope  = "user_website,email,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown,manage_pages,offline_access";
require_once "facebook.php";
$facebook = new facebook(array(
'appId' => $appId,
'secret' => $secret
)
);
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
}
catch (FacebookApiException $e) {
$user = null;
}

if (!$user) {
$loginUrl = $facebook->getLoginUrl(
array(
'scope' => $scope,
'redirect_uri' => $canvas
)
);

echo <<<LU
<script type="text/javascript">
top.location.href = $loginUrl;
</script>
LU;
}
}
print_r($user_profile);
?>

ありがとう。

4

1 に答える 1

0

コードを投稿します

<?php
    $fbconfig['appid' ] = "";
    $fbconfig['secret'] = "";

    $fbconfig['baseUrl']    =   "";
    $fbconfig['appBaseUrl'] =   "";

    $user            =   null;

    try{
      include_once "src/facebook.php";
    }
    catch(Exception $o){
      echo '<pre>';
      print_r($o);
      echo '</pre>';
    }


    $facebook = new Facebook(array(
       'appId'  => $fbconfig['appid'],
       'secret' => $fbconfig['secret'],
       'cookie' => true,
    ));

    //Facebook Authentication part

    $user       = $facebook->getUser();

    $loginUrl   = $facebook->getLoginUrl(
        array(
            'canvas'    => 1,
            'fbconnect' => 0,
            'scope'         => 'user_status,publish_stream,user_photos'
        )
    );

    if ($user) {
      try {

        $user_profile = $facebook->api('/me');

      } catch (FacebookApiException $e) {
        $user = null;
      }
    }

    if (!$user) {
         echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
         exit;
    }
?>
于 2011-09-04T12:27:54.000 に答える