0 ansichten

Login mit Google , Facebook und Facbook AccountKit — Benutzerdaten abrufen

Hallo Freunde, wir alle wissen, dass derzeit alle sozialen und offenen Funktionen der App dem Benutzer die direkte Anmeldung mit einem Google-Konto oder Facebook-Konto und auch mit der vom Facebook-Konto-Kit bereitgestellten Handynummer ermöglichen.

Nehmen wir ein kleines Beispiel für dieses soziale Login.

Fügen Sie die folgende Abhängigkeit in Ihrer hinzu build.gradle (Modul: App)

// Social-Login
Implementierung 'com.google.android.gms:play-services-auth:16.0.1'
Implementierung 'com.facebook.android:account-kit-sdk:4.39.0'
Implementierung 'com.facebook.android:facebook-login:4.36.0'

Fügen Sie Ihrer Manifestdatei die folgende Berechtigung hinzu

verwendet-permission android_name="android.permission.INTERNET" />Metadaten 
android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id" />
Metadaten
android:name="com.facebook.accountkit.ApplicationName"
android:value="@string/app_name" />
Metadaten
android:name="com.facebook.accountkit.ClientToken"
android:value="@string/account_kit_client_token" />
Metadaten
android:name="com.facebook.accountkit.FacebookAppEventsEnabled"
android:value="false" />
Aktivität
android:name="com.facebook.accountkit.ui.AccountKitActivity"
android:theme="@style/AppLoginTheme"
tools:replace="android:theme" />
Aktivität
android:name="com.facebook.FacebookActivity"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:label="@string/app_name" />
Aktivität
android:name="com.facebook.CustomTabActivity"
android:exported="true">
Absichtsfilter>
Aktion android_name="android.intent.action.VIEW" />

Kategorie android_name="android.intent.category.DEFAULT" />
Kategorie android_name="android.intent.category.BROWSABLE" />

Daten android_scheme="@string/fb_login_protocol_scheme" />
Absichtsfilter>
Aktivität>

AppLoginTheme wird verwendet, um die Benutzeroberfläche des FB-Konto-Kit-Bildschirms zu ändern, der wie unten dargestellt ist

style name="AppLoginTheme" parent="Theme.AccountKit" > 
item name="android:windowNoTitle"> wahrArtikel>
Artikelname = "com_accountkit_primary_color">@color/colorAccentArtikel>
Artikelname="com_accountkit_primary_text_color">@android:farbe/weißArtikel>
Artikelname="com_accountkit_secondary_text_color">@farbe/schwarz555Artikel>
Artikelname="com_accountkit_status_bar_color">@color/colorPrimaryDarkArtikel>

Artikelname = "com_accountkit_button_background_color">@color/colorPrimaryDarkArtikel>
Artikelname="com_accountkit_button_border_color">@android:farbe/transparentArtikel>
Artikelname="com_accountkit_button_text_color">@android:farbe/weißArtikel>
Artikelname = "com_accountkit_button_pressed_background_color">#D4E4F9Artikel>


Artikelname = "com_accountkit_input_accent_color">#D4E4F9Artikel>
Artikelname = "com_accountkit_input_border_color">@android:farbe/transparentArtikel>
Artikelname = "com_accountkit_input_text_color">@color/colorPrimaryDarkArtikel>
Artikelname = "com_accountkit_input_background_color">#D4E4F9Artikel>
Stil>

Jetzt in Ihrem Login-Aktivität

Klasse WelcomeActivity : BaseActivity()  privater Wert FACEBOOK_LOGIN_REQUEST_CODE = 232 
privater Wert GOOGLE_LOGIN_REQUEST_CODE = 233
private lateinit var mGoogleSignInClient : GoogleSignInClient
private var callbackManager: RückrufManager? = Null
Spaß überschreiben onCreate(savedInstanceState: Bundle?) super.onCreate(gespeicherterInstanzzustand)
setContentView(R.layout.Aktivität_Login)

Wert gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.bauen()
mGoogleSignInClient = GoogleSignIn.getClient(Dies, gso)


btn_mobile_login.setOnClickListener facebookTelefonLogin()
>

btn_google_login.setOnClickListener googleLogin()
>

btn_facebook_login.setOnClickListener initFacebookSignIn()
>
>
privater Spaß facebookTelefonLogin()
Wert Absicht = Absicht (Dies, KontoKitAktivität::Klasse.Java)
Wert configurationBuilder = AccountKitConfiguration.AccountKitConfigurationBuilder(
Anmeldetyp.TELEFON,
AccountKitActivity.ResponseType.ZEICHEN)
intention.putExtra(
AccountKitActivity.ACCOUNT_KIT_ACTIVITY_CONFIGURATION,
configurationBuilder.build())
configurationBuilder.setReadPhoneStateEnabled(Stimmt)
configurationBuilder.setReceiveSMS(Stimmt)
startActivityForResult(Absicht, FACEBOOK_LOGIN_REQUEST_CODE)
>
privater Spaß googleLogin() Wert signInIntent = mGoogleSignInClient.signInIntent
startActivityForResult(signInIntent, GOOGLE_LOGIN_REQUEST_CODE)
>
privater Spaß initFacebookSignIn() CallbackManager = CallbackManager.Factory.create()

LoginManager.getInstance().logInWithReadPermissions(
Dies, Arrays.asList("Email", "öffentliches Profil", "user_friends"))

LoginManager.getInstance().registerCallback(CallbackManager,
Objekt : FacebookRückruf Spaß überschreiben onSuccess(loginResult: LoginResult) Wert Anfrage = GraphRequest.newMeRequest(
LoginErgebnis.Zugangstoken
) Daten, _ ->
Wert
E-Mail = Daten?.getString("Email") ?: ""
Wert
id = Daten?.getString("Ich würde") ?: ""
Wert
Name = Daten?.getString("Name") ?: ""

>

Wert
Bündel = Bündel()
Bundle.putString("Felder", "ID, Name, E-Mail, Geschlecht, Geburtstag")
Anfrage.Parameter = Bündel
request.executeAsync()
>

Spaß überschreiben onCancel() Log.d("Login-Aktivität", "Facebook einAbbrechen.")
>

Spaß überschreiben onError(Fehler: FacebookException) Log.d("Login-Aktivität", "Facebook onError.")
>
>)
>
Spaß überschreiben onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) super.onActivityResult(Anfragecode, Ergebniscode, Daten)
Wenn (Anfrage Code) FACEBOOK_LOGIN_REQUEST_CODE -> Wert loginErgebnis =
Daten.getParcelableExtra (AccountKitLoginResult.RESULT_KEY)

Wenn LoginErgebnis.Error != Null -> drucken(LoginErgebnis.Error. errorType.Botschaft)

loginResult.wasCancelled() -> drucken("Anmeldung abgebrochen")

anders -> Anmeldeergebnis.Zugangstoken.anwenden AccountKit.getCurrentAccount(
Objekt : AccountKitRückruf Spaß überschreiben onSuccess(Konto: Konto?) Wert accountKitId = Konto?.Ich würde
Wert Telefonnummer = Konto?.Telefonnummer
Wert phoneNumberString = Telefonnummer?.toString()
>

Spaß überschreiben onError(Fehler: AccountKitError?) drucken(Error)
>
>
)
>
>
>
>

GOOGLE_LOGIN_REQUEST_CODE -> Wert task = GoogleSignIn.getSignedInAccountFromIntent(data)
handleSignInResult(task)
>

anders -> CallbackManager?.onActivityResult(Anfragecode, Ergebniscode, Daten)
>
>
privater Spaß handleSignInResult(completedTask: Aufgabe) Versuchen Wert result = completedTask.getResult(ApiException::Klasse.Java)
Ergebnis?.Lassen Konto ->
Gemeinsame Einstellungen
.socialLogin = GOOGLE_LOGIN
Wert accountId = Konto.Ich würde ?: ""
Wert
E-Mail = Konto.Email ?: ""
Wert
Name = Konto.Anzeigename ?: ""
Wert Profilbild = Konto.FotoURL?.toString() ?: ""
>

> Fang (e: ApiException) Log.e("GOOGLE", "signInResult:fehlerhafter Code=" + z.Statuscode)
>
>>

Das war’s, Sie erhalten alle Daten von Social Login und speichern Benutzer zu Login-Präferenzen und wenn Sie Benutzer von Präferenzen abmelden müssen, rufen Sie einfach die folgende Methode auf

Spaß abmeldenBenutzer()  
Wenn (Gemeinsame Einstellungen.socialLogin) FACEBOOK_KIT_LOGIN -> AccountKit.logOut()
>
FACEBOOK LOGIN -> LoginManager.getInstance().logOut()
>
GOOGLE_LOGIN -> mGoogleSignInClient.austragen()
>
>
>

Es ist sehr einfach, diesen Code in Ihre Anwendung zu implementieren und Zeit zu sparen.

Verwandter artikel:  So wärmen Sie Facebook-Konten auf

Hey Leute, wenn dir meine Geschichte gefällt, dann teile sie bitte mit deinen Freunden und folge mir für kommende Beiträge, wir sehen uns in der nächsten Geschichte, danke.

votes
Article Rating
Ссылка на основную публикацию
0
Would love your thoughts, please comment.x
Adblock
detector