Facebook SDK 的添加基本流程(Android)

本文介绍了在 Android Studio 中添加 Facebook SDK 的详细步骤,包括创建新工程、在 build.gradle 文件中添加依赖、更新 AndroidManifest.xml 文件以及修改 strings.xml。通过这些步骤,可以成功集成 Facebook SDK 到 Android 应用中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.首先你要打开 Android Studio 创建一个新的工程

出来后就是这样的,如下图



2.然后我们要添加 FaceBook 的一些依赖,主要是 Gradle Scripts -- build.gradle(Module: app) 的 dependencies
中加入complie 的包体


加入以下两个

compile 'com.android.support:appcompat-v7:24.0.0'
compile 'com.facebook.android:facebook-android-sdk:4.+'


加入后,我们要点一下同步工程 具体就是这个按钮

经过几分钟的等待我们就看到最下端的栏就 finish 了,就编译通过了


3.然后我们要修改 AndroidManifest.xml 添加 联网许可 及 FackBook 的 依赖activity ,还有所需<meta-data>

<uses-permission android:name="android.permission.INTERNET"/>
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
<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" >
</activity>


如下图这样添加即可



4.接下来我要们修改 res/values/strings.xml 中添加我们上面用到的 

“facebook_app_id”
如下图

这个里面的id是一串数字,就是你在 Facebook developer里面申请的应用的 ID

5.接下来就要编辑我们的主要的 MainActivity 了
 
package testfb.com.facebook;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import java.util.Arrays;

import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.GraphRequest;
import com.facebook.GraphResponse;
import com.facebook.HttpMethod;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;

public class MainActivity extends AppCompatActivity {

    CallbackManager callbackManager;
    private LoginManager loginManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
	//这里要初始化FB
        FacebookSdk.sdkInitialize(getApplicationContext());
	//设置窗口
        setContentView(R.layout.activity_main);
        callbackManager = CallbackManager.Factory.create();
        this.loginManager = LoginManager.getInstance();
	//设置登录权限 此处如果不添加 "user_friends" 你是不能访问好友信息的
        LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList(new String[]{"public_profile", "email", "user_friends"}));
	//登录按钮
        LoginButton loginButton = (LoginButton)findViewById(R.id.login_button);
        loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
            // App code
                Log.e("test","success");
		//取得自己的信息
                Log.e("personProfile","User ID: "
                        + loginResult.getAccessToken().getUserId()
                        + "\n" +
                        "Auth Token: "
                        + loginResult.getAccessToken().getToken());
		//取得你的好友信息,回调中就是你的好友信息
                new GraphRequest(
                        AccessToken.getCurrentAccessToken(),
                        "/me/friends",
                        null,
                        HttpMethod.GET,
                        new GraphRequest.Callback() {
                            public void onCompleted(GraphResponse response) {
            /* handle the result */
                                //TextView info = (TextView)findViewById(R.id.info);

                                //info.setText("Members = " + response.toString());

                                Log.e("callback","Members: " + response.toString());
                            }
                        }
                ).executeAsync();
            }

            @Override
            public void onCancel() {
                // App code
                Log.e("test","cancel");
            }

            @Override
            public void onError(FacebookException exception) {
                // App code
                Log.e("test","error");
            } });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
    }

}



以上你就可以添加了facebook 的SDK 。这里面有一个大坑,就是当你想取得你的好友信息时
 
注意这里:自从Facebook sdk V2.0后 你就不能取得你的所有好友的信息了
(具体可以看facebook的官方api)
你只能取得同样登陆此app的好友,简而言之就是谁用了这个app并登陆的时候允许授权了
这样获取你才能看到你的好友的信息,不然的话你是看不到任何信息的。而且你的登陆权限里
必须要添加 user_friends 这个permission ,具体就是上面代码里的那个

下面是我的layout xml的设置
 
<?xml version="1.0" encoding="utf-8"?>
<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="testfb.com.facebook.MainActivity">

    <com.facebook.login.widget.LoginButton
        android:id="@+id/login_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:layout_marginBottom="30dp" />

    <!--<TextView-->
        <!--android:layout_width="wrap_content"-->
        <!--android:layout_height="wrap_content"-->
        <!--android:id="@+id/info"-->
        <!--android:layout_alignParentLeft="true"-->
        <!--android:layout_alignParentTop="true"-->
        <!--android:textSize="18sp"-->
        <!--/>-->
</RelativeLayout>

以上就是我的添加流程,只限于我的AS的版本,其他版本不能保证完全好用,可以自行测试。

推荐一个比较好的国外网站(就是下面这个流程更加详细),里面有FB 和 Google 的SDK 添加流程

传说中的国外网站

欢迎交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值