3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Reactでfacebookログインを実装

Last updated at Posted at 2021-08-12

0. 開発者用facebookアカウントの用意

facebookアカウントでのログイン実装には、開発者用のFacebookアカウントが必要なのでご準備を!

1. moduleのインストール

moduleを使わない方法も検討しましたが、なんだかややこしそうだったので素直にmoduleを使った実装を採用しました。

yarn add react-facebook-login

or

npm install react-facebook-login

2. moduleのimport

ログインボタンを設置したいコンポーネント(hook)でimport!

import FacebookLogin from 'react-facebook-login';

3. ボタンの宣言

<FacebookLogin
  appId="Facebookから取得した固有のID"
  autoLoad={true}
  fields="name,email,picture"
  scope="public_profile,user_friends"
  callback={responseFacebook}
  cssClass="お好みのClas名"
  icon="fa-facebook" />

その他、カスタマイズする際のオプションリストみたいなのは下記のページのしたの方でまとまってましたのでご参考まで。

4. レスポンスが返ってきた時の処理

設置したボタンをタップすると、勝手にfacebookのウィンドウが開いて情報入力などするわけですが、
その後アプリ側に返ってきた時に呼ばれる関数を用意しておく必要があります。
実は、ボタン宣言時に"callback={responseFacebook}"というパラメータを渡しておいたので同じ名前の関数を宣言するだけでOK!

const responseFacebook = (response) => {
    console.log(response);
}

あとはとってきたログイン情報(名前、メアド、プロフ画像等)を必要な場所で活用していくだけ◎

最後は..

ローカル環境で試したいよね

httpsのURLじゃないと、Facebook側のフィルターにかかって認証を開始することすらできない。
→ ngrock を使ってみた。
↓使い方↓

注意: localhostではなく、IPアドレスを使って実行している場合、下のエラーが発生。

スクリーンショット 2021-08-12 18.16.02.png

このエラーは、こちらのコマンドで解決しました。

ngrok http --host-header=rewrite IPアドレス:3000

参考: https://qiita.com/T-Com/items/7f1468167f80df00a87d

しかしfacebookアカウントの開発モードでできることには制限があるので要注意です。
(審査に通るまで結構時間かかるみたいなので早めのご準備を~~)

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?