https://github.com/capacitor-community/facebook-login
Inicio de sesión en Facebook
@capacitor-community/facebook-login
Complemento de la comunidad de condensadores para el inicio de sesión nativo de Facebook.
mantenedores
mantenedor | GitHub | Social | Empresa Patrocinadora |
---|---|---|---|
Masahiko Sakakibara | rdlabo | @rdlabo | RELACIÓN DISEÑO LABO, GENERAL INC. ASOCIACIÓN |
Esteban Silva | estofados | @stewones | Intenseloop Inc. |
Colaboradores ✨
Hecho con contribuidores-img.
Manifestación
El código de demostración está aquí.
Versión de dependencia
Si desea conocer la versión de la biblioteca de Facebook, debe verificar:
- iOS
- Androide
Instalación
Si usa el condensador 4:
% npm i --save @capacitor-community/[email protected]
% npx cap update
condensador 3:
% npm i --save @capacitor-community/facebook-login
% npx cap update
Configuración de Android
En archivo android/app/src/main/java/**/**/MainActivity.java
agregue el complemento a la lista de inicialización:
import android.os.Bundle; // required for onCreate parameter
public class MainActivity extends BridgeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerPlugin(
com.getcapacitor.community.facebooklogin.FacebookLogin.class
);
}
}
En archivo android/app/src/main/AndroidManifest.xml
agregue los siguientes elementos XML en <manifest><application>
:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
En archivo android/app/src/main/res/values/strings.xml
agrega las siguientes lineas:
<string name="facebook_app_id">[APP_ID]</string>
<string name="facebook_client_token">[CLIENT_TOKEN]</string>
No olvides reemplazar [APP_ID]
y [CLIENT_TOKEN]
por su ID de aplicación de Facebook.
Puede encontrar más información aquí: https://developers.facebook.com/docs/android/getting-started
Si tienes problemas.
Reinicie Android Studio y realice una compilación limpia.
Configuración de iOS
En archivo ios/App/App/AppDelegate.swift
agregue o reemplace lo siguiente:
import UIKit
import Capacitor
import FBSDKCoreKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FBSDKCoreKit.ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
return true
}
...
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
// Called when the app was launched with a url. Feel free to add additional processing here,
// but if you want the App API to support tracking app url opens, make sure to keep this call
if (FBSDKCoreKit.ApplicationDelegate.shared.application(
app,
open: url,
sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
annotation: options[UIApplication.OpenURLOptionsKey.annotation]
)) {
return true;
} else {
return ApplicationDelegateProxy.shared.application(app, open: url, options: options)
}
}
}
Agrega lo siguiente en el ios/App/App/info.plist
archivo dentro de la más externa <dict>
:
<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>fbapi20130214</string>
<string>fbapi20130410</string>
<string>fbapi20130702</string>
<string>fbapi20131010</string>
<string>fbapi20131219</string>
<string>fbapi20140410</string>
<string>fbapi20140116</string>
<string>fbapi20150313</string>
<string>fbapi20150629</string>
<string>fbapi20160328</string>
<string>fbauth</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
</array>
Puede encontrar más información aquí: https://developers.facebook.com/docs/facebook-login/ios
Configuración web
import { FacebookLogin } from '@capacitor-community/facebook-login';
// use hook after platform dom ready
await FacebookLogin.initialize({ appId: '105890006170720' });
Puede encontrar más información aquí: https://developers.facebook.com/docs/facebook-login/web Y debe confirmar el tipo de retorno en https://github.com/rdlabo/capacitor-facebook-login/blob/master /src/web.ts#L55-L57 ¡No es el mismo tipo para el inicio de sesión predeterminado de Facebook en la web!
Ejemplo
Acceso
import {
FacebookLogin,
FacebookLoginResponse,
} from '@capacitor-community/facebook-login';
const FACEBOOK_PERMISSIONS = [
'email',
'user_birthday',
'user_photos',
'user_gender',
];
const result = await (<FacebookLoginResponse>(
FacebookLogin.login({ permissions: FACEBOOK_PERMISSIONS })
));
if (result.accessToken) {
// Login successful.
console.log(`Facebook access token is ${result.accessToken.token}`);
}
Cerrar sesión
import { FacebookLogin } from '@capacitor-community/facebook-login';
await FacebookLogin.logout();
Token de acceso actual
import {
FacebookLogin,
FacebookLoginResponse,
} from '@capacitor-community/facebook-login';
const result = await (<FacebookLoginResponse>(
FacebookLogin.getCurrentAccessToken()
));
if (result.accessToken) {
console.log(`Facebook access token is ${result.accessToken.token}`);
}
obtener perfil
import {
FacebookLogin,
FacebookLoginResponse,
} from '@capacitor-community/facebook-login';
const result = await FacebookLogin.getProfile<{
email: string;
}>({ fields: ['email'] });
console.log(`Facebook user's email is ${result.email}`);
API
initialize(...)
login(...)
logout()
reauthorize()
getCurrentAccessToken()
getProfile(...)
- Interfaces
- Tipo de alias
inicializar(…)
initialize(options: Partial<FacebookConfiguration>) => Promise<void>
Parámetro | Escribe |
---|---|
options |
Partial<FacebookConfiguration> |
acceso(…)
login(options: { permissions: string[]; }) => Promise<FacebookLoginResponse>
Parámetro | Escribe |
---|---|
options |
{ permissions: string[]; } |
Devoluciones: Promise<FacebookLoginResponse>
cerrar sesión()
logout() => Promise<void>
reautorizar()
reauthorize() => Promise<FacebookLoginResponse>
Devoluciones: Promise<FacebookLoginResponse>
getCurrentAccessToken()
getCurrentAccessToken() => Promise<FacebookCurrentAccessTokenResponse>
Devoluciones: Promise<FacebookCurrentAccessTokenResponse>
obtenerPerfil(…)
getProfile<T extends object>(options: { fields: readonly string[]; }) => Promise<T>
Parámetro | Escribe |
---|---|
options |
{ fields: readonly string[]; } |
Devoluciones: Promise<T>
Interfaces
FacebookConfiguración
Apuntalar | Escribe |
---|---|
appId |
string |
autoLogAppEvents |
boolean |
xfbml |
boolean |
version |
string |
locale |
string |
FacebookIniciar sesiónRespuesta
Apuntalar | Escribe |
---|---|
accessToken |
AccessToken | null |
recentlyGrantedPermissions |
string[] |
recentlyDeniedPermissions |
string[] |
token de acceso
Apuntalar | Escribe |
---|---|
applicationId |
string |
declinedPermissions |
string[] |
expires |
string |
isExpired |
boolean |
lastRefresh |
string |
permissions |
string[] |
token |
string |
userId |
string |
FacebookCurrentAccessTokenRespuesta
Apuntalar | Escribe |
---|---|
accessToken |
AccessToken | null |
Tipo de alias
Parcial
Haz que todas las propiedades en T sean opcionales
{
[P in keyof T]?: T[P];
}
Idiomas
-
Java
42,7% -
Mecanografiado
26,3% -
Rápido
20,4% -
Rubí
4,4% -
C objetivo
3,9% -
JavaScript
2,3%