본문 바로가기
Study/Android

Facebook 으로 사용자 인증하기

by Answer Choi 2017. 8. 29.
반응형


가장먼저 Android Studio를 이용해 앱을 하나 만들어 줍니다.


저는 Login test라는 이름으로 만들었습니다.



이제 Facebook으로 가서 설정을 해야합니다.



Facebook 개발자홈페이지(https://developers.facebook.com/)를 방문합니다.


오른쪽위의 내앱을 클릭하여 새로운 앱을 등록합니다.



정보를 넣은후 앱 ID만들기를 클릭!!



로그인을 할꺼니깐 로그인 선택!!



플랫폼은 안드로이드!!



이제 순서대로 따라하면 됩니다.


1,2번은 건너 뛰세요.


build.gradle(Module:app)



1
2
compile 'com.android.support:design:25.3.1'
compile 'com.facebook.android:facebook-android-sdk:[4,5)'
cs


대신 build.gradle(Module:app)에 sdk를 추가해 줍니다.




android 앱의 패키지 이름과, 기본 액티비티를 적어줍니다.


Save를 누르면 아래의 메세지가 나타납니다.



아직 앱이 업로드 되지 않아서 나타나는 문제입니다.


이 패키지 이름 사용을 클릭합니다.



이제 개발키 해시를 생성해야 합니다.


자신의 OS에 맞게 코드를 복사 합니다.


윈도우즈의 경우 JDK설치 경로에 Keytool이 있습니다.



1
keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
cs


혹시 위와 같이 openssl을 찾을수 없다는 오류메세지를 만나게 된다면, 


openssl 문제해결


위 링크를 눌러 해결하세요.



생성된 키 해시를 입력해 주고, SAVE후 계속 합니다.



android studio에서 각각의 항목에 맞게 코드를 추가해 줍니다.


strings.xml



1
2
<string name="facebook_app_id">3894734</string>
<string name="fb_login_protocol_scheme">fb3894734</string>
cs


manifests



1
2
<meta-data android:name="com.facebook.sdk.ApplicationId"
      android:value="@string/facebook_app_id"/>
cs


manifests



1
<uses-permission android:name="android.permission.INTERNET"/>
cs



메인에 앱 활성화를 위한 코드를 넣어줍니다.


MainActivity



1
2
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
cs


이제 Layout을 꾸밉니다.


activity_main.xml



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?><LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.answerofgod.logintest.MainActivity"
    android:orientation="vertical">
 
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/answerofgod"
        />
 
    <com.facebook.login.widget.LoginButton
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="30dp" />
 
</LinearLayout>
cs


MainActivity



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public class MainActivity extends AppCompatActivity {
    CallbackManager callbackManager;
    LoginButton login_button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        FacebookSdk.sdkInitialize(getApplicationContext());
        AppEventsLogger.activateApp(this);
        callbackManager = CallbackManager.Factory.create();
 
        login_button = (LoginButton)findViewById(R.id.login_button);
        login_button.setReadPermissions("email");
                // Callback registration
        LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
 
            @Override
            public void onSuccess(LoginResult loginResult) {
                // App code
            }
            @Override
            public void onCancel() {
                // App code
            }
            @Override
            public void onError(FacebookException exception) {
                // App code
            }
        });
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }
}
cs


여기까지하면 인증 구현은 완료됩니다.



첫 실행화면입니다.


Facebook으로 계속하기 버튼을 클릭합니다.



정보를 읽어들입니다.



Facebook 로그인 기록이 없어 로그인정보를 요구합니다.



로그인 중...



앱으로 시작 권한이 없으므로 물어봅니다.


권한 승인이 되고나면 로그인이 완료됩니다.


로그인이 완료된 이후 MainActivity의 콜백 함수중 onSuccess에 코드를 구현하시면


로그인 된 후 다음 단계로 자동으로 진행 됩니다.



반응형

인기글