1 просмотров

Войти с помощью Google, Facebook и Facbook AccountKit — Получить данные пользователя

Привет, друзья, мы все знаем, что в настоящее время все социальные и открытые приложения позволяют пользователю напрямую подписываться с учетной записью Google или Facebook, а также с номером мобильного телефона, который предоставляется комплектом учетной записи Facebook.

Давайте возьмем небольшой пример для этого входа в социальную сеть.

Добавьте ниже зависимость в свой build.gradle (модуль: приложение)

// Социальный вход
реализация 'com.google.android.gms:play-services-auth:16.0.1'
реализация 'com.facebook.android:аккаунт-кит-sdk:4.39.0'
реализация 'com.facebook.android:facebook-логин:4.36.0'

Добавьте ниже разрешение в файл манифеста

использует-разрешение android_name="android.permission.INTERNET" />метаданные 
android:name="com.facebook.sdk.ApplicationId"
андроид: значение = "@string/facebook_app_id" />
метаданные
android:name="com.facebook.accountkit.ApplicationName"
android:value="@string/имя_приложения" />
метаданные
android:name="com.facebook.accountkit.ClientToken"
android:value="@string/account_kit_client_token" />
метаданные
android:name="com.facebook.accountkit.FacebookAppEventsEnabled"
андроид: значение = "ложь" />
Мероприятия
android:name="com.facebook.accountkit.ui.AccountKitActivity"
android:theme="@style/AppLoginTheme"
инструменты: заменить = "андроид: тема" />
Мероприятия
android:name="com.facebook.FacebookActivity"
android:configChanges="клавиатура|клавиатура скрыта|макет экрана|размер экрана|ориентация"
android:label="@string/имя_приложения" />
Мероприятия
android:name="com.facebook.CustomTabActivity"
андроид: экспортировано = "истина">
фильтр намерений>
действие android_name="android.intent.action.VIEW" />

категория android_name="android.intent.category.DEFAULT" />
категория android_name="android.intent.category.BROWSABLE" />

данные android_scheme="@string/fb_login_protocol_scheme" />
фильтр намерений>
Мероприятия>

ПриложениеВходТема используется для изменения пользовательского интерфейса экрана комплекта учетной записи FB, как показано ниже.

имя стиля = "AppLoginTheme" parent = "Theme.AccountKit" > 
имя элемента = "android: окноNoTitle">правдавещь>
имя элемента = "com_accountkit_primary_color">@color/colorAccentвещь>
имя элемента = "com_accountkit_primary_text_color">@android:цветной/белыйвещь>
имя элемента = "com_accountkit_secondary_text_color">@цвет/черный555вещь>
имя элемента = "com_accountkit_status_bar_color">@color/colorPrimaryDarkвещь>

имя элемента = "com_accountkit_button_background_color">@color/colorPrimaryDarkвещь>
имя элемента = "com_accountkit_button_border_color">@android:цветной/прозрачныйвещь>
имя элемента = "com_accountkit_button_text_color">@android:цветной/белыйвещь>
имя элемента = "com_accountkit_button_pressed_background_color">#D4E4F9вещь>


имя элемента = "com_accountkit_input_accent_color">#D4E4F9вещь>
имя элемента = "com_accountkit_input_border_color">@android:цветной/прозрачныйвещь>
имя элемента = "com_accountkit_input_text_color">@color/colorPrimaryDarkвещь>
имя элемента = "com_accountkit_input_background_color">#D4E4F9вещь>
стиль>

Теперь в вашем вход в систему

учебный класс Добро пожаловатьАктивити : БазоваяАктивити()  частное значение FACEBOOK_LOGIN_REQUEST_CODE = 232 
частное значение GOOGLE_LOGIN_REQUEST_CODE = 233
приватный lateinit var mGoogleSignInClient : GoogleSignInClient
частный var callbackManager: CallbackManager? знак равно нулевой
отвергнуть удовольствие onCreate(сохраненныйInstanceState: Bundle?) супер.onCreate(сохраненныйInstanceState)
setContentView(R.layout.Activity_login)

вал gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.строить()
mGoogleSignInClient = GoogleSignIn.getClient(это, гсо)


btn_mobile_login.setOnClickListener facebookТелефонЛогин()
>

btn_google_login.setOnClickListener googleЛогин()
>

btn_facebook_login.setOnClickListener initFacebookSignIn()
>
>
личное развлечение facebookТелефонЛогин()
вал намерение = намерение (это, АккаунтКитАктивити::учебный класс.Ява)
вал configurationBuilder = AccountKitConfiguration.AccountKitConfigurationBuilder(
Тип входа.ТЕЛЕФОН,
Аккаунткитактивити.ResponseType.ТОКЕН)
намерение.putExtra(
АккаунтКитАктивити.ACCOUNT_KIT_ACTIVITY_CONFIGURATION,
ConfigurationBuilder.build())
configurationBuilder.setReadPhoneStateEnabled(истинный)
configurationBuilder.setReceiveSMS(истинный)
startActivityForResult(намерение, FACEBOOK_LOGIN_REQUEST_CODE)
>
личное развлечение googleЛогин() вал знакИнтент = mGoogleSignInClient.знакининтент
startActivityForResult(signInIntent, GOOGLE_LOGIN_REQUEST_CODE)
>
личное развлечение initFacebookSignIn() callbackManager = CallbackManager.Фабрика.создать()

LoginManager.getInstance().logInWithReadPermissions(
это, Массивы.какСписок("Эл. адрес", "общедоступный профиль", "user_friends"))

LoginManager.getInstance().registerCallback(callbackManager,
объект : FacebookОбратный звонок отвергнуть удовольствие при успехе (результат входа: результат входа) вал запрос = GraphRequest.newMeRequest(
ЛогинРезультат.AccessToken
) данные, _ ->
вал
электронная почта = данные?.getString("Эл. адрес") ?: ""
вал
идентификатор = данные?.getString("я бы") ?: ""
вал
имя = данные?.getString("имя") ?: ""

>

вал
комплект = комплект()
комплект.putString("поля", "id,имя,электронная почта,пол,день рождения")
запрос.параметры = комплект
запрос.executeAsync()
>

отвергнуть удовольствие onCancel () Log.d ("Активность входа", «Facebook приОтмене».)
>

отвергнуть удовольствие onError(ошибка: FacebookException) Log.d("Активность входа", «Facebook onError».)
>
>)
>
отвергнуть удовольствие onActivityResult (код запроса: Int, код результата: Int, данные: намерение?) супер.onActivityResult (код запроса, код результата, данные)
когда (код запроса) FACEBOOK_LOGIN_REQUEST_CODE -> вал ЛогинРезультат =
данные.getParcelableExtra (AccountKitLoginResult.RESULT_KEY)

когда ЛогинРезультат.ошибка != нулевой -> Распечатать(результат входа.ошибка. тип ошибки.сообщение)

loginResult.wasCancelled() -> Распечатать(«Вход отменен»)

еще -> Результат входа.AccessToken.подать заявление AccountKit.getCurrentAccount(
объект : AccountKitCallback отвергнуть удовольствие при успехе (учетная запись: учетная запись?) вал accountKitId = учетная запись?.я бы
вал Номер телефона = аккаунт?.номер телефона
вал phoneNumberString = phoneNumber?.toString()
>

отвергнуть удовольствие onError (ошибка: AccountKitError?) Распечатать(ошибка)
>
>
)
>
>
>
>

GOOGLE_LOGIN_REQUEST_CODE -> вал задача = GoogleSignIn.getSignedInAccountFromIntent(данные)
обработатьSignInResult(задача)
>

еще -> callbackManager?.onActivityResult (код запроса, код результата, данные)
>
>
личное развлечение handleSignInResult (completedTask: Task) пытаться вал результат = завершеноTask.getResult(ApiException::учебный класс.Ява)
результат?.позволять учетная запись ->
общие настройки
.социальныеВойти = GOOGLE_LOGIN
вал ID аккаунта = аккаунт.я бы ?: ""
вал
электронная почта = учетная запись.Эл. адрес ?: ""
вал
имя = учетная запись.показать имя ?: ""
вал профильИзображение = учетная запись.фотоURL?.нанизывать() ?: ""
>

> ловить (e: ApiException) Log.e("GOOGLE", "signInResult: неверный код =" + е.код состояния)
>
>>

Вот и все, вы получите все данные из социального входа и сохраните пользователя для входа в систему, а когда вам нужно выйти из системы из предпочтения, просто вызовите метод ниже

весело выход пользователя ()  
когда (общие настройки.социальныеВойти) FACEBOOK_KIT_LOGIN -> AccountKit.logOut()
>
ЛОГИН В ФЕЙСБУК -> LoginManager.getInstance().logOut()
>
GOOGLE_LOGIN -> mGoogleSignInClient.выход()
>
>
>

Этот код очень легко внедрить в ваше приложение и сэкономить ваше время.

привет, ребята, если вам нравится моя история, пожалуйста, поделитесь с друзьями и подпишитесь на меня в следующем посте, увидимся в следующей истории, спасибо.

голоса
Рейтинг статьи
Статья в тему:  Как создать поддельный аккаунт в фейсбуке
Ссылка на основную публикацию
Статьи c упоминанием слов:

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x