次のコードがあり、部分的に機能しています
<?php
require_once 'facebook.php';
$app_id = 'MY_APP_ID';
$app_secret = 'MY_APP_SECRET';
$app_url = 'http://mysite.com/index.php/';
$scope = 'user_about_me';
// Init the Facebook SDK
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
// Get the current user
$user = $facebook->getUser();
// If the user has not installed the app, redirect them to the Auth Dialog
if (!$user) {
$loginUrl = $facebook->getLoginUrl(array(
'scope' => $scope,
'redirect_uri' => $app_url,
));
print('<script> top.location.href=\'' . $loginUrl . '\'</script>');
}
$user_profile = $facebook->api('/me');
echo "id: " . $user_profile['id'];
?>
このページには正しい ID が出力されますが、他のいくつかのページでは if(!$user) に入ります。
しかし、oauth URL にエラーがあります。
API エラー コード: 191 API エラーの説明: 指定された URL は、アプリケーションによって所有されていません エラー メッセージ: 無効な redirect_uri: 指定された URL はアプリケーション構成で許可されていません。
ここでスタックオーバーフローで同様の問題を見つけましたが、修正できないようです:/
私の設定では、同じURLと$ app_urlがあります
Facebookのあるウェブサイト -> サイトのURL -> https://www.facebook.com/pages/myappname/373671679372127/
編集: app_url を編集したので、アプリ設定のキャンバス URL と同じになりました: http://mysite.com/index.php/
今、私はエラーを取得しません。空白のウィンドウが表示されます:(
編集: テスト時に時々 Cookie をクリアすることが重要です。そうでなければ、どこかでいくつかの非常にランダムなエラー