0

関数getUser()を使用すると、正しいIDが取得されないためですか?領収書は、以前に作業するためにログオンした人のIDであり、ページをリロードする必要があります。ページを2回ロードせずに作成する方法正しいIDを返しますか?

4

1 に答える 1

0

Facebook::getUser()(独自の PHP-SDK を使用している場合) 以下からユーザーの詳細を取得します: * URL 引数 * Facebook JS-SDK または PHP-SDK によって設定された Cookie * アプリケーション セッション

したがって、アクティブなセッション (Facebook セッションではなく、アプリケーション用のセッション) が存在し、ユーザーを識別するために必要なすべての詳細が含まれていない限り、彼の Facebook の user を知る方法はありませんid

id呼び出してユーザーを取得できない場合はgetUser、その時点でそのデータが存在しないことを意味し、ユーザーを認証する必要があります。

  • によって返された URL にユーザーをリダイレクトします。Facebook:getLoginUrl()
  • JS-SDK がユーザーのログイン ステータスを自動的に更新するのを待ちます ( status:trueFB.init に渡された場合)
  • FB.getLoginStatus(JS-SDK) を手動で呼び出す

同じものを 2 回ロードする前にユーザーの詳細を取得するには、次の 2 つのオプションがあります。

  1. アプリケーションでセッションの有効期間を延ばす
  2. によって返された URL にユーザーをリダイレクトしますFacebook:getLoginUrl()(これによりページが 2 回読み込まれますが、最初のリダイレクトのみがトリガーされます)。認証フローは、ユーザーを識別に必要なすべての詳細とともにアプリケーションに戻すだけです。
于 2012-06-22T20:15:36.940 に答える