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 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)相关推荐
- 【Android】google plus、Facebook登陆sdk集成打包出aar的使用步骤
本篇旨在记录aar包的使用步骤(关于aar的打包方法,如果有人需要的话我侯敏敏再补一篇): [arr打包方法:基本思路:在Android Studio中选择file-New Module-Androi ...
- 喜马拉雅android sdk接入,Android应用开发之喜马拉雅FM sdk使用
本文将带你了解Android应用开发喜马拉雅FM sdk使用,希望本文对大家学Android有所帮助. 喜马拉雅FM sdk使用. 1.喜马拉雅开放平台注册/审核后,在"我的应用&quo ...
- Android 阿里百川cps SDK接入流程
前言 因公司业务需求,需接入阿里百川SDK和京东联盟cps相关服务,为了跳到淘宝和京东,用户购买后得到佣金.接入过程中遇到很多坑,网上相关资料也甚少,虽然东西不算多,但花了不少时间,在此记录下来,为了 ...
- cocos creator接入微信登陆sdk android篇
cocos creator接入微信登陆sdk 背景 项目引擎使用cocos creator,使用android studio集成开发工具,在开发之前先做好准备工作 在微信开放平台上创建好移动应用,拿到 ...
- cocos creator Android 接入Google登陆sdk
准备工作 这里就不详细介绍,主要说一下客户端sdk接入 1.手机上安装Google服务 2.一个绑定信用卡的Google账号: 3.Google play客户端: 4..Google Play开发者后 ...
- Android App接入Facebook分享SDK,概率性无法启动Facebook客户端的问题分析
问题来源 由于我司的android app产品主要是面向海外,因此,app中的分享功能接入facebook分享是必不可少的.最近在接入facebook android sdk进行分享时,发现一个非常奇 ...
- Android FaceBook原生广告接入教程(精简版)
公司项目主要做海外市场,并且是资讯类的产品,所以接入一些广告公司的广告是一项不错的创收,昨天下午产品告诉我要马上接入Facebook的原生广告需求,于是下午就开始阅读Facebook广告接入的官方开发 ...
- Unity 第三方SDK框架接入 (Android Studio)
第三方SDK框架接入 (Android Studio)一 Android Android 与 Unity 交互: UnityPlayer.UnitySendMessage("string&q ...
- cocos creator接入微信登陆sdk ios篇
cocos creator接入微信登陆sdk ios篇 背景已经在Android篇里面交代过了,有兴趣的朋友可以再看看Android篇 步骤 去微信开放平台下载ios平台所需要的sdk 在" ...
- SDK接入(2)之Android Google Play内支付(in-app Billing)接入
SDK接入(2)之Android Google Play内支付(in-app Billing)接入 SDK接入(2)之Android Google Play内支付(in-app Billing)接入 ...
最新文章
- vue组件的基本使用,以及组件之间的基本传值方式
- wpf mysql存储过程_MySQL存储过程的创建及调用
- 哈工大鹏程lab武大提出对比学习+超分模型,实现了新的SOTA
- SQL Server数据库学习笔记-三大范式
- 无监督学习:Linear Dimension Reduction(线性降维)
- DTD(Document Type Definition) 简介
- ubuntu phpmyadmin php5.3,ubuntu中怎么下载安装phpmyadmin
- 百度网盘下载速度慢的解决方式
- 学驾照,科目一计分题
- [NOIP2005提高组]过河
- SparkCore:RDD累加器和广播变量(最详细的介绍)!!!!!!
- linux查看是centos几版本
- 将学习的语言运用到我们的生活中
- [活动召集]福建PHP社区聚会
- 前端专业名词解释——Layout布局
- poj3104 Drying(二分最大化最小值 好题)
- 人活着的意义__2014思想篇
- 联想Y7000在配置ubuntu16.04过程中所遇到的一些问题.例如WIFI禁用,外接屏显示错误,NVIDIA驱动安装等
- 微信小程序教程(第四篇)
- mysql over rank_mysql实现Oracle 的rank() over()函数
热门文章
- 基于 Verilog 的经典数字电路设计(8)计数器
- html5中video自动播放,H5:设置video自动播放
- 计算机主板自动重启,电脑开机后自动重启,详细教您电脑开机后自动重启如何解决...
- 好用的浏览器主页有哪些?
- 读书郎上市背后隐忧:业绩下滑明显,市场地位较靠后,竞争力存疑
- 读书笔记《能力陷阱》第三章:建立良好的人际关系网络
- HTML5期末大作业:京东商城网站设计——京东商城购物网站(4页) 基于Html+Css+javascript的网页制作(购物主题)
- 虚拟服务器修改教程,飘渺雪域商业一键虚拟端+修改元宝教程【无标题亲测
- 读书笔记之《梁宁增长思维30讲》
- gwas snp 和_新的高密度玉米SNP芯片可用于基因组选择、GWAS和群体遗传学