次のコードを使用すると、 $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);
?>
ありがとう。