Before you begin, you'll need:
Install the react-facebook package using your preferred package manager:
1npm install react-facebook2# or3yarn add react-facebook4# or5pnpm add react-facebook
Wrap your application with the FacebookProvider component and provide your Facebook App ID:
1import { FacebookProvider } from 'react-facebook';2
3function App() {4 return (5 <FacebookProvider appId="YOUR_FACEBOOK_APP_ID">6 {/* Your app components */}7 </FacebookProvider>8 );9}
The FacebookProvider accepts several configuration options:
1<FacebookProvider 2 appId="YOUR_FACEBOOK_APP_ID"3 version="v18.0" // SDK version4 language="en_US" // Locale5 debug={true} // Enable debug mode6 xfbml={true} // Parse XFBML tags7 cookie={true} // Enable cookies8 lazy={false} // Load SDK immediately9>
appId
Required. Your Facebook App IDversion
Facebook SDK version (default: v18.0)language
Locale for SDK (default: en_US)debug
Enable debug mode for developmentlazy
Delay SDK loading until neededLet's create a simple login button using the Login component:
1import { Login } from 'react-facebook';2
3function LoginComponent() {4 const handleSuccess = (response) => {5 console.log('Login Success:', response);6 // response.authResponse contains:7 // - accessToken8 // - userID9 // - expiresIn10 // - signedRequest11 };12
13 const handleError = (error) => {14 console.error('Login Failed:', error);15 };16
17 return (18 <Login19 scope="email,public_profile"20 onSuccess={handleSuccess}21 onError={handleError}22 className="bg-blue-600 text-white px-4 py-2 rounded"23 >24 Login with Facebook25 </Login>26 );27}
React Facebook provides several hooks for programmatic access to the SDK:
1import { useFacebook } from 'react-facebook';2
3function MyComponent() {4 const { isLoading, error, init, api } = useFacebook();5
6 useEffect(() => {7 if (api) {8 // Facebook SDK is ready9 api.getLoginStatus((response) => {10 console.log('Login status:', response);11 });12 }13 }, [api]);14
15 if (isLoading) return <div>Loading Facebook SDK...</div>;16 if (error) return <div>Error loading Facebook SDK</div>;17
18 return <div>Facebook SDK loaded!</div>;19}
To enable Facebook Pixel tracking, add the pixel configuration to your provider:
1<FacebookProvider 2 appId="YOUR_FACEBOOK_APP_ID"3 pixel={{4 pixelId: "YOUR_PIXEL_ID",5 autoConfig: true,6 debug: false,7 }}8>9 {/* Your app */}10</FacebookProvider>
Then use the usePixel hook to track events:
1import { usePixel } from 'react-facebook';2
3function ProductPage({ product }) {4 const { pageView, track } = usePixel();5
6 useEffect(() => {7 // Track page view8 pageView();9 10 // Track custom event11 track('ViewContent', {12 content_ids: [product.id],13 content_type: 'product',14 value: product.price,15 currency: 'USD'16 });17 }, [product]);18
19 return <div>{/* Product details */}</div>;20}