https://github.com/capacitor-community/facebook-login - KolMitE

https://github.com/capacitor-community/facebook-login

https://github.com/capacitor-community/facebook-login

diciembre 4, 2022 Software en General 0

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.javaagregue 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.xmlagregue 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%



Por favor Comparte y Síguenos:
RSS
Follow by Email
Facebook
Twitter

Deja una respuesta