ユーザーがFacebookを使用して自分のサイトにログインできるようにするために、FacebookPHPSDKを使用しています。以下の私のテストでは(URLがhttp://mysite.com/test/fbtest.php
であると仮定します)、
<?php
require_once("facebook.php");
$fb = new Facebook(array('appId' => 'APP_ID', 'secret' => 'APP_SECRET'));
$fbuser = false;
$fbuserid = $fb->getUser();
$fblogin = $fb->getLoginUrl(array(
'redirect_uri' => "http://{$_SERVER['HTTP_HOST']}/test/fbtest.php"));
if($fbuserid)
{
try
{
$fbuser = $fb->api("/me");
print_r($fbuser);
echo "<br/>\n";
}
catch (FacebookApiException $e)
{
$fbuser = false;
$fbuserid = 0;
}
}
if(!$fbuser)
echo "<a href=\"$fblogin\">FB Login</a>\n";
?>
これは期待どおりに機能するようです。ただし、次の書き換えルールを追加すると、
RewriteRule ^/FBtest/(.*)$ http://%{HTTP_HOST}/test/fbtest.php$1
次に、ログインリダイレクトを次のように変更します。
$fblogin = $fb->getLoginUrl(array(
'redirect_uri' => "http://{$_SERVER['HTTP_HOST']}/FBtest/"));
その後、$fb->getUser()
常に0を返します。重要なものが欠けているように感じます。