官方文档

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 base64YOUR_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 registerLoginCallbackcallbackManager = CallbackManager.Factory.create();LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {@Overridepublic void onSuccess(LoginResult loginResult) {// App code, 登陆成功,自己编写成功后的方法//获取FB返回的uid:loginResult.getAccessToken().getUserId();}@Overridepublic void onCancel() {// App code, 登陆取消,自行编写}@Overridepublic 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

    @Overrideprotected 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】编译过程遇到的问题可在其他文章中找到解决方案。

Facebook登陆SDK接入(Android)相关推荐

  1. 【Android】google plus、Facebook登陆sdk集成打包出aar的使用步骤

    本篇旨在记录aar包的使用步骤(关于aar的打包方法,如果有人需要的话我侯敏敏再补一篇): [arr打包方法:基本思路:在Android Studio中选择file-New Module-Androi ...

  2. 喜马拉雅android sdk接入,Android应用开发之喜马拉雅FM sdk使用

    本文将带你了解Android应用开发喜马拉雅FM sdk使用,希望本文对大家学Android有所帮助. 喜马拉雅FM   sdk使用. 1.喜马拉雅开放平台注册/审核后,在"我的应用&quo ...

  3. Android 阿里百川cps SDK接入流程

    前言 因公司业务需求,需接入阿里百川SDK和京东联盟cps相关服务,为了跳到淘宝和京东,用户购买后得到佣金.接入过程中遇到很多坑,网上相关资料也甚少,虽然东西不算多,但花了不少时间,在此记录下来,为了 ...

  4. cocos creator接入微信登陆sdk android篇

    cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...

  5. cocos creator Android 接入Google登陆sdk

    准备工作 这里就不详细介绍,主要说一下客户端sdk接入 1.手机上安装Google服务 2.一个绑定信用卡的Google账号: 3.Google play客户端: 4..Google Play开发者后 ...

  6. Android App接入Facebook分享SDK,概率性无法启动Facebook客户端的问题分析

    问题来源 由于我司的android app产品主要是面向海外,因此,app中的分享功能接入facebook分享是必不可少的.最近在接入facebook android sdk进行分享时,发现一个非常奇 ...

  7. Android FaceBook原生广告接入教程(精简版)

    公司项目主要做海外市场,并且是资讯类的产品,所以接入一些广告公司的广告是一项不错的创收,昨天下午产品告诉我要马上接入Facebook的原生广告需求,于是下午就开始阅读Facebook广告接入的官方开发 ...

  8. Unity 第三方SDK框架接入 (Android Studio)

    第三方SDK框架接入 (Android Studio)一 Android Android 与 Unity 交互: UnityPlayer.UnitySendMessage("string&q ...

  9. cocos creator接入微信登陆sdk ios篇

    cocos creator接入微信登陆sdk ios篇 背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇 步骤 去微信开放平台下载ios平台所需要的sdk 在" ...

  10. SDK接入(2)之Android Google Play内支付(in-app Billing)接入

    SDK接入(2)之Android Google Play内支付(in-app Billing)接入 SDK接入(2)之Android Google Play内支付(in-app Billing)接入 ...

最新文章

  1. vue组件的基本使用,以及组件之间的基本传值方式
  2. wpf mysql存储过程_MySQL存储过程的创建及调用
  3. 哈工大鹏程lab武大提出对比学习+超分模型,实现了新的SOTA
  4. SQL Server数据库学习笔记-三大范式
  5. 无监督学习:Linear Dimension Reduction(线性降维)
  6. DTD(Document Type Definition) 简介
  7. ubuntu phpmyadmin php5.3,ubuntu中怎么下载安装phpmyadmin
  8. 百度网盘下载速度慢的解决方式
  9. 学驾照,科目一计分题
  10. [NOIP2005提高组]过河
  11. SparkCore:RDD累加器和广播变量(最详细的介绍)!!!!!!
  12. linux查看是centos几版本
  13. 将学习的语言运用到我们的生活中
  14. [活动召集]福建PHP社区聚会
  15. 前端专业名词解释——Layout布局
  16. poj3104 Drying(二分最大化最小值 好题)
  17. 人活着的意义__2014思想篇
  18. 联想Y7000在配置ubuntu16.04过程中所遇到的一些问题.例如WIFI禁用,外接屏显示错误,NVIDIA驱动安装等
  19. 微信小程序教程(第四篇)
  20. mysql over rank_mysql实现Oracle 的rank() over()函数

热门文章

  1. 基于 Verilog 的经典数字电路设计(8)计数器
  2. html5中video自动播放,H5:设置video自动播放
  3. 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
  4. 好用的浏览器主页有哪些?
  5. 读书郎上市背后隐忧:业绩下滑明显,市场地位较靠后,竞争力存疑
  6. 读书笔记《能力陷阱》第三章:建立良好的人际关系网络
  7. HTML5期末大作业:京东商城网站设计——京东商城购物网站(4页) 基于Html+Css+javascript的网页制作(购物主题)
  8. 虚拟服务器修改教程,飘渺雪域商业一键虚拟端+修改元宝教程【无标题亲测
  9. 读书笔记之《梁宁增长思维30讲》
  10. gwas snp 和_新的高密度玉米SNP芯片可用于基因组选择、GWAS和群体遗传学