0

PHP SDKで現在ログインしているFacebookユーザーを取得したい。これが私が試したことです:

$facebook = new \Facebook(array(
        'appId' => 'XXXXXXXXXXX',
        'secret' => 'XXXXXXXXXXXXXXXXXXXXX',
    ));
$user = $facebook->getUser();
var_dump($user);
if ($user) {
   $logoutUrl = $facebook->getLogoutUrl();
   echo $logoutUrl;
} else {
   $loginUrl = $facebook->getLoginUrl();
   echo $loginUrl;
}

上記のコードでページを読み込むと、facebook にログインしていても loginUrl を取得します。ブラウザに $loginUrl をロードした場合にのみ、Facebook ユーザーを取得できます。

このページの最初の読み込み時に現在のユーザーを取得するにはどうすればよいですか?

4

2 に答える 2

1

現在のユーザーの情報へのアクセスをアプリに承認してもらうことなく、現在のユーザーを表示したいようです。

これは不可能です。なんで?

  1. Facebook API を使用するには、トークンが必要です。
  2. トークンはユーザーに固有のものであり、Facebook ユーザーが接続する必要があることを意味します。
  3. ユーザーが Facebook に接続する唯一の方法は、Facebook.com にアクセスして資格情報を入力することです。これに同意するので、あなたのウェブサイトは Facebook.com にリダイレクトするためのリンクを作成する必要があることを理解するでしょう。
  4. ユーザーがリンクをクリックすると、FB にリダイレクトされます。アカウントに接続したら、アプリが自分の情報にアクセスできるようにする必要があります。したがって、完了した場合、Facebook.com がアクセス トークンを正常に返すと、ループは閉じられます。

アクセス トークンをまだ持っていない限り、ログイン手順をバイパスすることはできません。したがって、getLoginUrl()物を使用する必要があります。

于 2013-09-24T21:25:23.663 に答える
0

Facebookにログインしているにもかかわらず、loginUrlを取得します。

もちろんそうです。facebook.com にログインすることは、アプリにログインすることとはまったく異なります。

ブラウザに $loginUrl をロードした場合にのみ、Facebook ユーザーを取得できます。

これは、その後ユーザーがアプリケーションにログインするためです。

このページの最初の読み込み時に現在のユーザーを取得するにはどうすればよいですか?

JavaScript SDK を使用して、以前のある時点でアプリに接続したことがあるユーザーのみが可能です。

于 2013-09-24T21:29:38.527 に答える