3

最近、コードをphpfogにアップロードしましたが、ローカルでは発生しなかった問題が発生しました。

ページが読み込まれると、設定されているはずの$idFacebookを取得しようとします。

$idFacebook = $facebook->getUser();
if ($idFacebook) { ... }

Facebookにログインしていますが、条件が失敗し、ログインするためのボタンが表示されます。

<div class="fb-login-button" data-scope="user_likes,user_photos"></div>

もう1つの問題は、ボタンを押すと、ログインウィンドウが表示されているように見えますが、非常にすばやく自動的に閉じることです。

私のコードは基本的に、Facebookアプリを作成するときにHerokuが提供するものと同じです。リポジトリは次のとおりです:https ://github.com/heroku/facebook-template-php 。私はそれを解決する方法を見つけることができず、多くの人々がFacebookのログインでいくつかの問題を経験しているのを見てきました。

私はあなたが私を助けることができるのを楽しみにしています。前もって感謝します。

4

4 に答える 4

4

私の実際のエラーは、アプリが認証されておらず、別のドメインのホストから別のドメインにコードを移動したためにアプリが認証されなかったため、$ facebook-> getUser()が0を返し、アプリケーション構成を変更するのを忘れたというものでした。http://developers.facebook.com

これで、アプリは自動的にログインを取得します。みんなありがとう!

于 2012-07-25T23:42:47.117 に答える
1

ログインウィンドウがすぐに消えるのは、Facebookがアプリに権限を付与する必要があるかどうかをチェックしているためです。すでにFacebookにログインして承認されているため、ほぼ瞬時に終了します。

私はHerokuとFacebookの統合に精通していませんが、$idFacebook問題は無効な構成にあると思います。

于 2012-07-25T11:03:36.997 に答える
1

同じブラウザでFacebookにログインしている可能性があるため、ログインウィンドウはすぐに消えます。

私はHerokuに精通していませんが、Zend Framework(php)でこの問題を克服しました。ログインとログアウトにjavascript-sdkを使用しました。このリンクを参照してください。

http://developers.facebook.com/blog/post/2011/07/21/updated-javascript-sdk-and-oauth-2-0-roadmap/

したがって、この例をコードに実装すると、同じブラウザでFBにログインしたときにログアウトするように求められます。したがって、[ログアウト]をクリックすると、再度ログインするように求められます。

それが役に立てば幸い。

于 2012-07-25T11:17:21.543 に答える
0

これを回避するには、FB.getLoginStatusを使用してFacebookスクリプトの動作を少し変更する必要があります。ユーザーがすでにFacebookにログインしているかどうか、およびユーザーがアプリを既に承認しているかどうかを確認します。

FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
        window.location = //redirect to page with logged user (you have the response token in response)
    } else {
      //Show the login popup
      FB.login(function(response) {
        if (response.authResponse) {
          window.location = //redirect to location after correct login
        }
      }, { scope: '<scopes>', state: '<state>' });
    }
  });

このように、ユーザーが「接続」されている(ログインしてアプリが承認されている)場合、FB.loginメソッドを呼び出さないため、ログインウィンドウは点滅しません。それ以外の場合は、期待される結果であるログインウィンドウが表示されます。

完全なドキュメントについては、https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatusを確認してください。

于 2014-09-04T15:45:02.647 に答える