シンプルなFBアプリが作れなくて困っています。
ローカルホストで開発したところ、完全に機能しました。全体的なアイデアは、リターン URL を使用して Facebook のログイン ページを起動するデスクトップ アプリを用意することです。ユーザーが正常にログインすると、そのリターン URL に送信され、「ログインしていただきありがとうございます」というメッセージが表示されます。
localhost で試してみると (Facebook のアプリ ドメインとサイト URL を localhost に設定して)、問題なく動作します。しかし、php を Web サーバーに移動したので、$user var にはデータが取り込まれません。(はい、私は自分のドメインを指すように Facebook のアプリ ドメインとリターン URL を更新しました。)
私は調査を開始し、エラーと思われるものを突き止めました。base_facebook.php には、次のコード部分を含む getUserFromAvailableData()メソッドがあります: (エコーは私のものです)
$access_token = $this->getAccessToken();
echo "Access Token: ".$access_token."<br/>";
echo $this->getApplicationAccessToken()."<br/>";
if ($access_token && $access_token != $this->getApplicationAccessToken() && !($user && $persisted_access_token == $access_token)) {
echo "This doesn't get printed at all.";
$user = $this->getUserFromAccessToken();
if ($user) {
$this->setPersistentData('user_id', $user);
} else {
$this->clearAllPersistentData();
}
}
return $user;
ご覧のとおり、印刷されないエコーがあり、getAccessToken と getApplicationAccessToken がまったく同じ文字列を返すことがわかりました。これが、$user が空になる理由です。
だから私の質問は次のようになります: なぜこれは localhost では機能するのに、私の Web サーバーでは機能しないのですか? 私は何を間違っていますか?
ありがとう!