web-dev-qa-db-ja.com

メソッドFB.getLoginStatusは、httpページから呼び出せなくなりました

そこで、nodejsバックエンドサーバーにFacebookログイン機能を実装しようとしました。テスト目的で、クライアント側でログインを確認してアクセストークンを取得しようとしています。そのため、私はドキュメントに従って、Javascript SDKを使用するように言い、手順に従いましたが、問題があります。

window.fbAsyncInit = function() {
    FB.init({
      appId            : '##############',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v4.0'
    })


    FB.getLoginStatus(function(response) {
        statusChangeCallback(response);
    });

  }

これは、ユーザーのログインステータスを取得するコードですが、次のエラーが表示されます。

The method FB.getLoginStatus can no longer be called from http pages

私はプロダクションルールに非常に気付いていますが、これは私が取り組んでいる開発モードであり、それでもエラーが発生します。不足しているものはありますか?私がしなければならないことは? localhostで実行していて、エラーが発生します。

4
JustABeginner

サーバー(localhostなど)にSSL証明書を展開する必要があります。安全でない場所からのものを拒否します。

0
blackforest-tom

Nodejsを使用する場合、より簡単な修正があります。環境変数HTTPSをtrueに設定します。たとえば、create-react-appを使用する場合は、package.jsonの開始スクリプトを変更します。

"scripts": {
  "start": "HTTPS=true react-scripts start",
  ...
}

すでにカスタムスクリプトを使用している場合は、そこに追加することもできます。

process.env.HTTPS = true;

後者の方法の主な利点は、コメントを追加してそれを説明できることです。

0
wvdz