-1

ユーザーが自分のアプリケーションに接続されていないかどうかを検出する方法を見つけるのに苦労しています。アクティビティ 'View' と 'Item' を送信したいのですが、これは完全に正常に動作しますが、最初にリロード時にログイン リンクをクリックする必要があります。ページと彼らはログインしています。

これを自動的に行うにはどうすればよいですか?ユーザーがアプリに接続されているかどうかを確認するにはどうすればよいですか? 次のコードを試しましたが、接続していないユーザーには空白のページが表示されます。

$facebook = new Facebook($config);
$user_id = $facebook->getUser();

    // Check if logged in
    if($user_id) {
            $params = array(
              'ok_session' => 1, // Logged in and connected
              'no_user' => 2, // Logged out of facebook
              'no_session' => 3, // Logged in but not connected
            );
            $next_url = $facebook->getLoginStatusUrl($params);

            if($next_url == 2 || $next_url == 3){
                header('Location: '.$facebook->getLoginUrl(array('scope' => 'publish_stream')));
            }
        } else {
            // Not logged in
            header('Location: '.$facebook->getLoginUrl(array('scope' => 'publish_stream')));
    } 

ユーザーが接続されているかどうかを確認する機能はないようですので、そのgetLoginUrl機能を利用しました。

$user_idによって供給されます$user_id = $facebook->getUser();

4

1 に答える 1

0

ここでキャンバス/ページタブアプリについて話している場合、探している情報はsigned_request、アプリが初期ロード時に渡されるパラメーターにあります。

そうでない場合– Facebookの「外部」では、ドメインに設定されたCookieが残っていない場合、PHP SDKは、以前にアプリを使用したことがあるページにアクセスしたユーザーがいるかどうかを知る方法がありません。

JS SDKを使用できます。これにより、Facebookにクロスドメインリクエストを送信して、ユーザーがログインしているかどうかを確認し、ドメインの下に適切なCookieを設定して、次のリクエストFB.getLoginStatusでPHPSDKに通知させることができます。サーバーにも。

于 2012-08-15T15:29:49.147 に答える