-1단계-
facebook developer 에서 facebook sdk 를 다운 받아서 압축을 풀고
eclipse에서 import 시킨다!!
-2단계-
openssl 설치하고 cmd 창에서
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\hwlee\.android\debug.keystore" -storepass android -keypass android | openssl sha1 -binary | openssl base64
등록하게 되면 기존 프로젝트에 있던 android-support-v4.jar 가 겹치게 되는데
우리가 facebook sdk 라이브러리를 추가하는 경우이기에 기존에 있던 라이브러리르 지우고 facebook 라이브러리로만 연결 시켜 놓는다!!
-4단계-
<uses-permission android:name="android.permission.INTERNET"/>
퍼미션 추가!!
<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name" >
</activity>
로그인 액티비티 가져오기!
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
메타데이터 설정!
자신의 프로젝트에서 res->values->strings.xml 에서
<string name="facebook_app_id">!*이부분은 위에 보이는 앱 ID 숫자를 적는다*!/string>
-이제 간단한 mainactivity 소스!!-
import java.util.Arrays;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.facebook.FacebookException;
import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
import com.facebook.widget.LoginButton;
import com.facebook.widget.LoginButton.OnErrorListener;
public class MainActivity extends Activity {
LoginButton authButton;
private String TAG = "MainActivity";
private TextView lblEmail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lblEmail = (TextView) findViewById(R.id.lblEmail);
authButton = (LoginButton)findViewById(R.id.authButton);
authButton.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(FacebookException error) {
// TODO Auto-generated method stub
Log.i(TAG,"Error " + error.getMessage());
}
});
// set permission list, Don't foeget to add email // public_profile 버전맞게!!
authButton.setReadPermissions(Arrays.asList("public_profile","email"));
// session state call back event
authButton.setSessionStatusCallback(new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Log.i(TAG,"Access Token"+ session.getAccessToken());
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,Response response) {
if (user != null) {
Log.i(TAG,"User ID "+ user.getId());
Log.i(TAG,"Email "+ user.asMap().get("email"));
lblEmail.setText(user.asMap().get("email").toString());
}
}
});
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
}
-activity_main.xml-
<RelativeLayout 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.example.fctestapp.MainActivity" >
<TextView
android:id="@+id/lblEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="144dp"
android:text="Email ID : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<com.facebook.widget.LoginButton
android:id="@+id/authButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp" />
</RelativeLayout>
facebook developer 에서 facebook sdk 를 다운 받아서 압축을 풀고
eclipse에서 import 시킨다!!
-2단계-
openssl 설치하고 cmd 창에서
keytool -exportcert -alias androiddebugkey -keystore "C:\Users\hwlee\.android\debug.keystore" -storepass android -keypass android | openssl sha1 -binary | openssl base64
명령어로 hash key를 얻는다!
이렇게 얻은 해쉬키를 등록한다.
-3단계-
자신의 프로젝트에서 properties 로 !! 가서 android 탭에서 아까 import 시킨것중
add 버튼을 눌러 라이브러리를 추가한다.
우리가 facebook sdk 라이브러리를 추가하는 경우이기에 기존에 있던 라이브러리르 지우고 facebook 라이브러리로만 연결 시켜 놓는다!!
-4단계-
<uses-permission android:name="android.permission.INTERNET"/>
퍼미션 추가!!
<activity
android:name="com.facebook.LoginActivity"
android:label="@string/app_name" >
</activity>
로그인 액티비티 가져오기!
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
메타데이터 설정!
자신의 프로젝트에서 res->values->strings.xml 에서
<string name="facebook_app_id">!*이부분은 위에 보이는 앱 ID 숫자를 적는다*!/string>
-이제 간단한 mainactivity 소스!!-
import java.util.Arrays;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import com.facebook.FacebookException;
import com.facebook.Request;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.model.GraphUser;
import com.facebook.widget.LoginButton;
import com.facebook.widget.LoginButton.OnErrorListener;
public class MainActivity extends Activity {
LoginButton authButton;
private String TAG = "MainActivity";
private TextView lblEmail;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lblEmail = (TextView) findViewById(R.id.lblEmail);
authButton = (LoginButton)findViewById(R.id.authButton);
authButton.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(FacebookException error) {
// TODO Auto-generated method stub
Log.i(TAG,"Error " + error.getMessage());
}
});
// set permission list, Don't foeget to add email // public_profile 버전맞게!!
authButton.setReadPermissions(Arrays.asList("public_profile","email"));
// session state call back event
authButton.setSessionStatusCallback(new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
if (session.isOpened()) {
Log.i(TAG,"Access Token"+ session.getAccessToken());
Request.executeMeRequestAsync(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user,Response response) {
if (user != null) {
Log.i(TAG,"User ID "+ user.getId());
Log.i(TAG,"Email "+ user.asMap().get("email"));
lblEmail.setText(user.asMap().get("email").toString());
}
}
});
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data);
}
}
-activity_main.xml-
<RelativeLayout 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.example.fctestapp.MainActivity" >
<TextView
android:id="@+id/lblEmail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="144dp"
android:text="Email ID : "
android:textAppearance="?android:attr/textAppearanceLarge" />
<com.facebook.widget.LoginButton
android:id="@+id/authButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="45dp" />
</RelativeLayout>
이렇게 하면 완성!!!!!
댓글
댓글 쓰기