Migration de connexion Facebook à @capgo/social-login
Copiez un prompt de configuration avec les étapes d'installation et le guide markdown complet pour ce plugin.
Vue d'ensemble
Section intitulée “Présentation”Cette guide fournit des instructions complètes pour la migration de @capacitor-community/facebook-login vers @capgo/capacitor-social-login. Le nouveau plugin modernise l'authentification Facebook avec un API unifié qui prend en charge plusieurs fournisseurs sociaux, une meilleure prise en charge de TypeScript et des capacités améliorées.
Installation
Section intitulée “Installation”-
Supprimez l'ancien package :
Fenêtre de terminal npm uninstall @capacitor-community/facebook-login -
Installez le nouveau package :
Fenêtre de terminal npm install @capgo/capacitor-social-loginnpx cap sync
Code Modifications
Section intitulée “Code Modifications”Importer les modifications
Section intitulée “Importer les modifications”import { FacebookLogin } from '@capacitor-community/facebook-login';import { SocialLogin } from '@capgo/capacitor-social-login';Initialisation
Section intitulée “Initialisation”Modification clé: La nouvelle package nécessite un setup explicite dans votre code:
// Old package required no explicit initialization in code// Configuration was done only in native platforms
// New package requires explicit initializationawait SocialLogin.initialize({ facebook: { appId: 'YOUR_FACEBOOK_APP_ID', // Required for web and Android clientToken: 'YOUR_CLIENT_TOKEN' // Required for Android }});Connexion
Section intitulée “Connexion”La méthode de connexion accepte maintenant un paramètre de fournisseur :
const FACEBOOK_PERMISSIONS = ['email', 'public_profile'];const result = await FacebookLogin.login({ permissions: FACEBOOK_PERMISSIONS });
const result = await SocialLogin.login({ provider: 'facebook', options: { permissions: ['email', 'public_profile'], limitedLogin: false, nonce: 'optional_nonce' }});Type de réponse modifié
Section intitulée “Type de réponse modifié”La structure de réponse a été modernisée avec un profil d'objet plus complet :
// Old response typeinterface FacebookLoginResponse { accessToken: { applicationId: string; userId: string; token: string; expires: string; }; recentlyGrantedPermissions: string[]; recentlyDeniedPermissions: string[];}
// New response typeinterface FacebookLoginResponse { provider: 'facebook'; result: { accessToken: { token: string; applicationId?: string; expires?: string; userId?: string; permissions?: string[]; declinedPermissions?: string[]; } | null; idToken: string | null; profile: { userID: string; email: string | null; friendIDs: string[]; birthday: string | null; ageRange: { min?: number; max?: number } | null; gender: string | null; location: { id: string; name: string } | null; hometown: { id: string; name: string } | null; profileURL: string | null; name: string | null; imageURL: string | null; }; };}Différences clés:
- La réponse inclut maintenant un
providerchamp identifiant le fournisseur d'authentification - Informations utilisateur plus détaillées
profileStructure cohérente pour tous les fournisseurs de connexion sociale - Section intitulée “Différences clés”
Vérifiez l'état de connexion
Section intitulée “Vérifiez l'état de connexion”const result = await FacebookLogin.getCurrentAccessToken();const isLoggedIn = result && result.accessToken;
const status = await SocialLogin.isLoggedIn({ provider: 'facebook'});const isLoggedIn = status.isLoggedIn;Déconnexion
Section intitulée “Déconnexion”await FacebookLogin.logout();
await SocialLogin.logout({ provider: 'facebook'});Changements spécifiques au plateau
Section intitulée “Changements spécifiques au plateau”Configuration Android
Section intitulée “Configuration Android”La configuration est maintenant gérée par la méthode initialize :
// AndroidManifest.xml changes remain the same// strings.xml become irrelevant// Additionally initialize in your code:await SocialLogin.initialize({ facebook: { appId: 'your-app-id', clientToken: 'your-client-token' // New requirement }});ImportantLe jeton client est désormais requis pour l'authentification Android.
Configuration iOS
La section intitulée « Configuration iOS »- La configuration iOS reste la même :
AppDelegate.swiftCopier dans le presse-papier
import FBSDKCoreKit
// In application:didFinishLaunchingWithOptions:FBSDKCoreKit.ApplicationDelegate.shared.application( application, didFinishLaunchingWithOptions: launchOptions)
// In application:openURL:options:ApplicationDelegate.shared.application( app, open: url, sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String, annotation: options[UIApplication.OpenURLOptionsKey.annotation])- configuration reste la même :
Info.plistCopier dans le presse-papier
<key>CFBundleURLTypes</key><array> <dict> <key>CFBundleURLSchemes</key> <array> <string>fb[APP_ID]</string> </array> </dict></array><key>FacebookAppID</key><string>[APP_ID]</string><key>FacebookClientToken</key><string>[CLIENT_TOKEN]</string><key>FacebookDisplayName</key><string>[APP_NAME]</string><key>LSApplicationQueriesSchemes</key><array> <string>fbapi</string> <string>fbauth</string> <string>fb-messenger-share-api</string> <string>fbauth2</string> <string>fbshareextension</string></array>La section intitulée « Changements majeurs »
Section titled “Breaking Changes”Résumé des modifications de rupture lors du passage en revue :
- Une initialisation explicite est désormais requise - Doit appeler
initialize()avant utilisation - La structure de l'objet réponse a changé de manière significative - Nouveau format de résultat imbriqué avec des données de profil améliorées
- Un jeton client est désormais requis pour Android - Configuration supplémentaire nécessaire
- Des noms de méthode et des structures de paramètres différents - Approche basée sur les fournisseurs
- Les modes de gestion des erreurs et les types d'erreurs ont changé - Informations d'erreur plus détaillées
Avantages Clés
Section intitulée « Avantages Clés »Le nouveau plugin fournit :
- Unifié API sur plusieurs fournisseurs sociaux (Google, Apple, Facebook)
- Amélioration de la prise en charge de TypeScript avec de meilleures définitions de type
- Données de profil améliorées avec plus d'informations sur l'utilisateur
- Entretien actif et support communautaire
- Gestion des erreurs cohérente across all fournisseurs
- Une meilleure gestion des jetons avec une gestion appropriée de la durée d'expiration
Pour plus de détails sur les instructions de configuration, veuillez vous référer à la documentation officielle.
Continuez de la migration de connexion Facebook à @capgo/social-login
Section intitulée “Continuez de la migration de connexion Facebook à @capgo/social-login”Si vous utilisez la migration de connexion Facebook à @capgo/social-login pour planifier l'authentification et les flux de compte, connectez-la avec En utilisant @capgo/capacitor-social-login pour la capacité native dans En utilisant @capgo/capacitor-social-login, @capgo/capacitor-connexion-social pour les détails d'implémentation dans @capgo/capacitor-connexion-social, @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey, @capgo/capacitor-authentification-biometrique-native pour les détails d'implémentation dans @capgo/capacitor-authentification-biometrique-native, et Authentification à deux facteurs pour les détails d'implémentation dans Authentification à deux facteurs.