0

シンプルな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 サーバーでは機能しないのですか? 私は何を間違っていますか?

ありがとう!

4

1 に答える 1

0

コードを実際のサーバーで使用する場合は、ドメイン名を使用して Facebook アプリケーションを作成する必要があります。このアプリケーションを使用して、ツアー php スクリプトをホストし、アプリケーション ID とアプリ シークレットを配置します。

$config = array();
$config['appId'] = 'YOUR_APP_ID';
$config['secret'] = 'YOUR_APP_SECRET';

$facebook = new Facebook($config);

これが役立つことを願っています

于 2013-09-17T09:15:17.103 に答える