Facebook登陆SDK接入(Android)

官方文档

Android 版 Facebook 登录 — 快速入门

接入准备

1】首先去Facebook开发者平台创建自己的应用,这里一般是运营的工作。本文主要讲解接入过程以及遇到的一些问题,其他不赘述。

集成SDK

1】Maven方式:
项目级的build.gradle

repositories {
      jcenter()  //添加
   }

应用级的build.gradle

dependencies {
   implementation 'com.facebook.android:facebook-login:[5,6)'  //添加

2】jar包导入方式
下载Facebook最新的SDK的 jar包,放到项目的libs文件夹下。
下载地址在上方官方文档中有

编辑您的资源和清单

1】打开您的 /app/res/values/strings.xml 文件。
添加如下所示的代码:

<resources>
    <string name="facebook_app_id">后台有</string>
    <string name="server_client_id">后台有</string>
</resources>

2】打开 /app/manifest/AndroidManifest.xml 文件。
在 application 元素后添加以下 uses-permission 元素:

<uses-permission android:name="android.permission.INTERNET" />

3】在 application 元素中添加以下 meta-data 元素。 官方文档添加内容比这多,可以看下。我的项目只添加以下meta-data(添加Facebook的activity会有奇怪的报错…)

<meta-data 
    android:name="com.facebook.sdk.ApplicationId" 
    android:value="@string/facebook_app_id"/>

将包名填入FB后台

正确填入即可

生成密钥散列

官方文档很坑,直接给了一个debug的生成命令,疏忽的小朋友如果照着文档执行,测试包不会有问题,但是一旦上线,玩家手机中装有Facebook应用后,就无法进入游戏,
提示:登陆错误:将你登陆到此应用程序时错误,请稍后再试。
所以这里生成散列要生成两个,并都填入后台。

每个 Android 开发环境都将会有一个唯一的开发密钥散列
打开mac的终端,输入以下命令就会生成28个字符串的一个散列。
Mac – Debug的:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Mac – 正式的:

keytool -exportcert -alias **YOUR_RELEASE_KEY_ALIAS** -keystore **YOUR_RELEASE_KEY_PATH** | openssl sha1 -binary | openssl base64

YOUR_RELEASE_KEY_ALIAS:看下你的keyAlias是多少,填入
YOUR_RELEASE_KEY_PATH:你的keystore文件路径

Windows

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\USERNAME\.android\debug.keystore" | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" sha1 -binary | "PATH_TO_OPENSSL_LIBRARY\bin\openssl" base64

以上,在后台输入包名,散列后就可以后面愉快的代码接入了
1】在onCreate()方法中添加回调

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // facebook registerLoginCallback
        callbackManager = CallbackManager.Factory.create();
        LoginManager.getInstance().registerCallback(callbackManager,
                new FacebookCallback<LoginResult>() {
                    @Override
                    public void onSuccess(LoginResult loginResult) {
                        // App code, 登陆成功,自己编写成功后的方法
						//获取FB返回的uid:loginResult.getAccessToken().getUserId();
                    }

                    @Override
                    public void onCancel() {
                         // App code, 登陆取消,自行编写
                    }

                    @Override
                    public void onError(FacebookException exception) {
                         // App code  
                        Log.e(TAG, "exception: " + exception);
                    }
        });
        
        //检测登陆状态,可选功能。 在官方文档中也有介绍,判断本地是否有登陆缓存,直接登陆
        AccessToken accessToken = AccessToken.getCurrentAccessToken();
        isFBLoggedIn = accessToken != null && !accessToken.isExpired();

2】需要登陆的地方添加以下代码

LoginManager.getInstance().logInWithReadPermissions(MainActivity.this, Arrays.asList("public_profile"));

3】最后,在 onActivityResult 方法中调用 callbackManager.onActivityResult,通过 callbackManager 将登录结果传递至 LoginManager

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        callbackManager.onActivityResult(requestCode, resultCode, data);
        super.onActivityResult(requestCode, resultCode, data);
    }

至此,接入完成。

遇到的问题

1】第一个问题玩家无法登陆Facebook账号,在生成散列中已经说明了。
2】如果提示:“xxxxxxxFacebook-login 5.9.0 in AndroidManifest”,就把清单中的FacebookActivity注释掉。
3】编译过程遇到的问题可在其他文章中找到解决方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要使用Facebook SDK登录,您需要遵循以下步骤: 1. 创建Facebook开发人员帐户并设置应用程序。 2. 在您的应用程序中包含Facebook SDK。 3. 配置您的应用程序以使用Facebook登录。 4. 实现Facebook登录按钮并使用Facebook SDK进行身份验证。 下面是一些更详细的步骤: 1. 创建Facebook开发人员帐户并设置应用程序: - 访问Facebook for Developers网站并创建一个新的开发人员帐户。 - 在Dashboard中创建一个新应用程序,并设置应用程序的名称和基本设置。 - 在设置中添加您的平台(iOS、Android等)和相关详细信息。 2. 在您的应用程序中包含Facebook SDK: - 使用CocoaPods或手动方式将Facebook SDK添加到您的项目中。 - 设置Facebook SDK的配置文件,并在应用程序启动时初始化SDK。 3. 配置您的应用程序以使用Facebook登录: - 在开发人员门户中的设置中,将Facebook登录设置为“启用”。 - 配置您的应用程序的Bundle ID和OAuth回调URL。 4. 实现Facebook登录按钮并使用Facebook SDK进行身份验证: - 将Facebook登录按钮添加到您的应用程序中,并将其链接到Facebook SDK的登录方法。 - 处理登录成功或失败的回调,并在成功的情况下使用Facebook SDK返回的访问令牌进行身份验证。 这些是一些基本步骤,但要实现Facebook登录,您需要更详细的指南和文档。Facebook开发人员门户提供了详细的文档和示例代码,可帮助您完成此过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值