AndroidManifest.xml #
1<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="페이스북APP_ID"/>
2<activity android:name="com.facebook.FacebookActivity"
3 android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
4 android:theme="@android:style/Theme.Translucent.NoTitleBar"
5 android:theme="@android:style/Theme.Translucent.NoTitleBar"
6 android:label="@string/app_name" />
7<provider android:authorities="com.facebook.app.FacebookContentProvider페이스북APP_ID"
8 android:name="com.facebook.FacebookContentProvider"
9 android:exported="true" />Login 요청 버튼 구현 #
Arrays.asList를 이용하여 권한을 추가로 요청하실 수 있습니다. 일부 권한은 페이스북 앱 리뷰를 통과해야 합니다. {: .prompt-info }
1private void isLoginFacebook() {
2 FacebookSdk.sdkInitialize(getApplicationContext());
3 callbackManager = CallbackManager.Factory.create();
4 LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email"));
5 LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
6 @Override
7 public void onSuccess(LoginResult loginResult) {
8 Log.d("TAG", "페이스북 토큰 -> " + loginResult.getAccessToken().getToken());
9 Log.d("TAG","페이스북 UserID -> " + loginResult.getAccessToken().getUserId());
10 }
11
12 @Override
13 public void onCancel() {
14 Log.d("TAG","취소됨");
15 }
16
17 @Override
18 public void onError(FacebookException e) {
19 e.printStackTrace();
20 }
21 });
22}사용자 정보 획득 #
1GraphRequest request = GraphRequest.newMeRequest( 엑세스토큰 ,
2 new GraphRequest.GraphJSONObjectCallback() {
3 @Override
4 public void onCompleted(JSONObject object, GraphResponse response) {
5 Log.d("TAG","페이스북 로그인 결과" + response.toString());
6
7 try {
8 String email = object.getString("email"); // 이메일
9 String name = object.getString("name"); // 이름
10 String gender = object.getString("gender"); // 성별
11
12 Log.d("TAG","페이스북 이메일 -> " + email);
13 Log.d("TAG","페이스북 이름 -> " + name);
14 Log.d("TAG","페이스북 성별 -> " + gender);
15
16 } catch (Exception e) {
17 e.printStackTrace();
18 }
19 }
20 });
21Bundle parameters = new Bundle();
22parameters.putString("fields", "id,name,email,gender");
23request.setParameters(parameters);
24request.executeAsync();callbackManager 호출 #
1@Override
2 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
3 super.onActivityResult(requestCode, resultCode, data);
4 // 페이스북 로그인 결과를 콜백매니저에 담는다
5 callbackManager.onActivityResult(requestCode, resultCode, data);
6 }Advertisement