関数getUser()を使用すると、正しいIDが取得されないためですか?領収書は、以前に作業するためにログオンした人のIDであり、ページをリロードする必要があります。ページを2回ロードせずに作成する方法正しいIDを返しますか?
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:true
FB.init に渡された場合) FB.getLoginStatus
(JS-SDK) を手動で呼び出す
同じものを 2 回ロードする前にユーザーの詳細を取得するには、次の 2 つのオプションがあります。
- アプリケーションでセッションの有効期間を延ばす
- によって返された URL にユーザーをリダイレクトします
Facebook:getLoginUrl()
(これによりページが 2 回読み込まれますが、最初のリダイレクトのみがトリガーされます)。認証フローは、ユーザーを識別に必要なすべての詳細とともにアプリケーションに戻すだけです。
于 2012-06-22T20:15:36.940 に答える