在Android应用中集成Facebook SDK,可以让您的应用通过Facebook登录、分享和支付等功能。以下是一个简单的Android Facebook SDK示例,帮助您开始使用Facebook SDK。
在您的项目的build.gradle
文件中,添加以下代码:
dependencies {
implementation 'com.facebook.android:facebook-android-sdk:6.4.0'
}
在activity_main.xml
文件中,添加以下代码:
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="326dp"
android:layout_gravity="center_horizontal"
android:text="登录到Facebook"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
app:layout_constraintWidth_default="wrap" />
在MainActivity.java
中,添加以下代码:
package com.example.facebook_sdk_demo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.Facebook;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import java.util.Arrays;
public class MainActivity extends AppCompatActivity {
private CallbackManager mCallbackManager;
private Facebook mFacebook;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化Facebook SDK
mFacebook = Facebook.createInstance(this, Arrays.asList(Facebook.DEFAULT_ADD_YOUR_CREDITS_KEY));
mCallbackManager = CallbackManager.Factory.create();
// 登录按钮点击事件
Button loginButton = findViewById(R.id.login_button);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loginToFacebook();
}
});
}
private void loginToFacebook() {
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile", "email"));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mCallbackManager.onActivityResult(requestCode, resultCode, data);
}
public void shareFacebook(String message) {
if (mFacebook != null) {
Bundle params = new Bundle();
params.putString("message", message);
mFacebook.share(params);
}
}
}
在MainActivity.java
中,添加以下代码以集成Facebook登录:
private LoginManager mLoginManager;
private CallbackManager mCallbackManager;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化Facebook SDK
mFacebook = Facebook.createInstance(this, Arrays.asList(Facebook.DEFAULT_ADD_YOUR_CREDITS_KEY));
mCallbackManager = CallbackManager.Factory.create();
// 登录按钮点击事件
Button loginButton = findViewById(R.id.login_button);
loginButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loginToFacebook();
}
});
// 分享按钮点击事件
Button shareButton = findViewById(
领取专属 10元无门槛券
手把手带您无忧上云