Как создать логин в Facebook с помощью приложения для Android?
Опубликовано: 5 Января, 2022
В этой статье объясняется, как создать приложение для Android с логином Facebook.
В приложениях Android можно использовать различные функции входа в социальные сети. Здесь мы изучим социальный вход с помощью Facebook , поэтому необходимо интегрировать Facebook SDK в проект, чтобы использовать вход в Facebook.
Ниже приведены различные шаги, как это сделать;
- Первое, что вам нужно сделать, это создать учетную запись разработчика Facebook, а затем создать новое приложение.

- Установите Android Studio (> = 3.0), а затем откройте / создайте проект, в который вы хотите добавить вход в Facebook.
- Добавьте в свой проект следующий код в Gradle Scripts -> build.gradle (Project).
buildscript{repositories {jcenter()}} - Теперь добавьте следующий код в Gradle Scripts -> build.gradle (Module: app) с последней версией Facebook Login SDK в свой проект.
dependencies {implementation 'com.facebook.android:facebook-android-sdk:5.0.0'} - Синхронизируйте свой проект
- Теперь откройте файл app -> res -> values -> strings.xml, чтобы добавить следующие строки и заменить [APP_ID] своим APP_ID, который вы можете получить из консоли разработчика Facebook.
<stringname="facebook_app_id">[APP_ID]</string><stringname="fb_login_protocol_scheme">fb[APP_ID]</string>
- Откройте файл app -> manifest -> AndroidManifest.xml и добавьте эту строку вне элемента приложения.
<uses-permissionandroid:name="android.permission.INTERNET"/> - Добавьте этот элемент метаданных в элемент приложения в файле AndroidManifest.xml:
<meta-dataandroid:name="com.facebook.sdk.ApplicationId"android:value="@string/facebook_app_id"/><activityandroid:name="com.facebook.FacebookActivity"android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"android:label="@string/app_name"/> - Теперь первое, что вам потребуется, это Key Hash , поэтому добавьте эти строки в свой класс активности перед кодом входа в Facebook:
@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);... printHashKey();...}...publicvoidprintHashKey(){// Add code to print out the key hashtry{PackageInfo info= getPackageManager().getPackageInfo("com.android.facebookloginsample",PackageManager.GET_SIGNATURES);for(Signature signature : info.signatures) {MessageDigest md= MessageDigest.getInstance("SHA");md.update(signature.toByteArray());Log.d("KeyHash:",Base64.encodeToString(md.digest(),Base64.DEFAULT));}}catch(PackageManager.NameNotFoundException e) {}catch(NoSuchAlgorithmException e) {}} - Теперь запустите приложение в эмуляторе или на подключенном устройстве. Вы увидите значение Key Hash, напечатанное в logcat, сохраните его для дальнейшего использования.
- Перейдите в консоль разработчиков Facebook и выберите « Настройки» -> «Основные» -> «Добавить платформу» (внизу страницы), и откроется всплывающее окно для выбора платформы . Выберите Android в качестве платформы.
- Добавьте название пакета вашего проекта в поле "Название пакета Google Play". Добавьте имя класса, в котором логин будет реализован в проекте, например «LoginActivity», а также добавьте значение хэша ключа в «Key Hashes» .

- Теперь вернемся в студию Android, добавьте эту настраиваемую кнопку в свой файл макета * .xml:
<Buttonandroid:id="@+id/button_facebook"style="@style/FacebookLoginButton"android:layout_width="match_parent"android:layout_height="45dp"android:layout_gravity="center_horizontal"android:layout_marginTop="15dp"android:text="Continue With Facebook"android:textAllCaps="false"android:textColor="@android:color/white"/> - Добавьте этот код в файл app -> res -> styles.xml:
<stylename="FacebookLoginButton"><itemname="android:textSize">14sp</item><itemname="android:background">@drawable/facebook_signin_btn</item><itemname="android:paddingTop">11dp</item><itemname="android:paddingBottom">11dp</item><itemname="android:paddingLeft">15dp</item><itemname="android:layout_marginLeft">3dp</item><itemname="android:layout_marginRight">3dp</item><itemname="android:layout_height">wrap_content</item><itemname="android:layout_gravity">center_horizontal</item></style> - Вы можете настроить эту кнопку соответствующим образом или вместо указанной выше настраиваемой кнопки вы можете использовать кнопку Facebook по умолчанию также как Facebook LoginButton.
- Создайте файл с возможностью рисования с именем 'bg_button_facebook.xml' в приложении -> res -> папка с возможностью рисования и вставьте ниже код:
<?xmlversion="1.0"encoding="utf-8"?><shapeandroid:shape="rectangle"><cornersandroid:radius="5dp"/><solidandroid:color="#3B5998"/></shape> - Теперь инициализируйте кнопку в файле * .java и код для инициализации Facebook SDK :
// Declare variablesprivateButton mButtonFacebook;privateCallbackManager callbackManager;privateLoginManager loginManager;...@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);...mButtonFacebook= findViewById(R.id.button_facebook);FacebookSdk.sdkInitialize(MainActivity.this);callbackManager = CallbackManager.Factory.create();facebookLogin();...mButtonFacebook.setOnClickListener(newView.OnClickListener() {@OverridepublicvoidonClick(View v){loginManager.logInWithReadPermissions(MainActivity.this,Arrays.asList("email","public_profile","user_birthday"));}});...}... - Добавьте метод facebookLogin вне onCreate () в файл java. Это код для ответа на вход в Facebook.
publicvoidfacebookLogin(){loginManager= LoginManager.getInstance();callbackManager= CallbackManager.Factory.create();loginManager.registerCallback(callbackManager,newFacebookCallback<LoginResult>() {@OverridepublicvoidonSuccess(LoginResult loginResult){GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(),newGraphRequest.GraphJSONObjectCallback() {@OverridepublicvoidonCompleted(JSONObject object,GraphResponse response){if(object !=null) {try{String name = object.getString("name");String email = object.getString("email");String fbUserID = object.getString("id");disconnectFromFacebook();// do action after Facebook login success// or call your API}catch(JSONException | NullPointerException e) {e.printStackTrace();}}}});Bundle parameters =newBundle();parameters.putString("fields","id, name, email, gender, birthday");request.setParameters(parameters);request.executeAsync();}@OverridepublicvoidonCancel(){Log.v("LoginScreen","---onCancel");}@OverridepublicvoidonError(FacebookException error){// here write code when get errorLog.v("LoginScreen","----onError: "+ error.getMessage());}});} - Теперь добавьте еще один необходимый метод «disconnectFromFacebook» для интеграции входа в систему, аналогично добавьте его вне onCreate. Это используется для отключения приложения от Facebook, так как нет необходимости оставаться на связи.
publicvoiddisconnectFromFacebook(){if(AccessToken.getCurrentAccessToken() ==null) {return;// already logged out}newGraphRequest(AccessToken.getCurrentAccessToken(),"/me/permissions/",null,HttpMethod.DELETE,newGraphRequest.Callback() {@OverridepublicvoidonCompleted(GraphResponse graphResponse){LoginManager.getInstance().logOut();}}).executeAsync();} - Добавить метод «onActivityResult» вне OnCreate в той же деятельности:
@OverrideprotectedvoidonActivityResult(intrequestCode,intresultCode,Intent data){// add this linecallbackManager.onActivityResult(requestCode,resultCode,data);super.onActivityResult(requestCode,resultCode,data);} - Теперь вы закончили кодирование. Запустите приложение на своем устройстве или в эмуляторе. Теперь вы можете войти в систему через Facebook также в своем приложении.
- Если вы хотите загрузить свое приложение в игровой магазин , вам необходимо включить «статус» в верхнем правом разделе на Facebook для разработчиков, для этого сначала добавьте URL-адрес политики конфиденциальности в настройках -> Базовый, как показано на скриншоте ниже. Теперь сохраните изменения и включите статус с панели управления.

Вниманию читателя! Не прекращайте учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .