1、下载sdk并在facebook开发者平台配置
https://developers.facebook.com/docs/android?locale=zh_CN
2、主要功能代码的实现:
private Button loginButton; private CallbackManager callbackManager; AccessToken accessToken;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FacebookSdk.sdkInitialize(context); callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { @Override public void onSuccess(LoginResult loginResult) { MyLoger.i(TAG, "chenggong"); accessToken = loginResult.getAccessToken(); GraphRequest request = GraphRequest.newMeRequest( accessToken, new GraphRequest.GraphJSONObjectCallback() { //當RESPONSE回來的時候 @Override public void onCompleted(JSONObject object, GraphResponse response) { //讀出姓名 ID FB個人頁面連結String facebook_id = object.optString("id");
String facebook_name = object.optString("name"); } }); //包入你想要得到的資料 送出request Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,link"); request.setParameters(parameters); request.executeAsync(); } @Override public void onCancel() { MyLoger.i(TAG, "failure"); } @Override public void onError(FacebookException exception) {Log.i(TAG, "errno");} }); setContentView(R.layout.activity_login); loginButton = (Button) findViewById(R.id.LoginButton); loginButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile", "user_friends", "user_status")); } }); MyApplication.getInstance().addActivity(this); try { PackageInfo info = getPackageManager().getPackageInfo("com.addcn.android_8591", PackageManager.GET_SIGNATURES); for (Signature signature : info.signatures) { MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); String key = Base64.encodeBytes(md.digest()); System.out.println("key========z/Oq+3hPwKZr6Xq9M44QJdVW1tg=//" + key); } } catch (PackageManager.NameNotFoundException e) { } catch (NoSuchAlgorithmException e) { }}
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); callbackManager.onActivityResult(requestCode, resultCode, data); }
<activity android:name="com.facebook.FacebookActivity" android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:label="@string/app_name"/> <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/app_id"/>
主要的代码就这么多咯,希望有用 也欢迎指正纠错~~