在Facebook开发者页面上创建一个新的应用程序,并从应用程序设置中获得应用程序ID。
在您的Android Studio项目中,使用Gradle导入Facebook的SDK,添加以下依赖项:
implementation 'com.facebook.android:facebook-login:[5,6)'
APP_ID_FROM_FACEBOOK
private CallbackManager mCallbackManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
mCallbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_main);
LoginButton loginButton = findViewById(R.id.facebook_login_button);
loginButton.setReadPermissions(Arrays.asList("email", "public_profile"));
loginButton.registerCallback(mCallbackManager, new FacebookCallback() {
@Override
public void onSuccess(LoginResult loginResult) {
// 登录成功,获取登录用户的信息
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
String name = object.getString("name");
String email = object.getString("email");
//获取完整信息,进行业务逻辑处理...
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email,picture.type(large)");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
// 用户取消登录操作
}
@Override
public void onError(FacebookException error) {
// 登录失败
Toast.makeText(getApplicationContext(), "Facebook login failed: " + error.getMessage(), Toast.LENGTH_LONG).show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}