そこで、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で実行していて、エラーが発生します。
サーバー(localhostなど)にSSL証明書を展開する必要があります。安全でない場所からのものを拒否します。
Nodejsを使用する場合、より簡単な修正があります。環境変数HTTPSをtrueに設定します。たとえば、create-react-appを使用する場合は、package.json
の開始スクリプトを変更します。
"scripts": {
"start": "HTTPS=true react-scripts start",
...
}
すでにカスタムスクリプトを使用している場合は、そこに追加することもできます。
process.env.HTTPS = true;
後者の方法の主な利点は、コメントを追加してそれを説明できることです。