Android平台接入Facebook登录
官方教程地址:
https://developers.facebook.com/docs/android/getting-started
开发环境为Android Studio,官方要求SDK最低版本为“API 15: Android 4.0.3”。
一、创建应用
1、激活账号
按照要求创建APP,生成appId。
注意:在填写APP名称的时候,不能包含任何有关facebook的名字或简写,否则无法通过。
2、配置Gradle文件
配置app下的build.gradle文件。
如下:
//添加到dependencies之前
repositories {
mavenCentral()
}
- 1
- 2
- 3
- 4
在dependencies中添加
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
- 1
3、添加PackName和Default Activity Class Name
4、生成KeyHash并添加到指定位置
生成方式参照“三、Facebook登录Key Hash配置”,生成的Key Hash添加到对应的位置中,区别测试和发布版本。
二、客户端接入
1、Facebook 统计
如果需要统计app启动 安装等相关数据,可以在MainActivity中调用如下代码:
@Override
protected void onResume() {
super.onResume();
// Logs 'install' and 'app activate' App Events.
AppEventsLogger.activateApp(this);
}
@Override
protected void onPause() {
super.onPause();
// Logs 'app deactivate' App Event.
AppEventsLogger.deactivateApp(this);
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
2、初始化Facebook
在Activity或者Application的onCreate中对Facebook进行初始化。
FacebookSdk.sdkInitialize(getApplicationContext());
- 1
3、添加Facebook App ID,声明权限
App ID进入到下图所示界面可以查看
注意:AppID必须添加到strings.xml中,string名字必须是facebook_app_id。
声明权限 <uses-permission android:name="android.permission.INTERNET"/>
4、在application中添加meta-data
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
- 1
5、注册callback
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(...);
- 1
- 2
在用户成功授权之后,回调onActivityResult(),需要重写 onActivityResult()
callbackManager.onActivityResult(requestCode, resultCode, data);
- 1
6、执行登录操作
LoginManager.getInstance().
logInWithReadPermissions(this, Arrays.asList("public_profile", "user_friends"));
- 1
- 2
7、获取AccessTokens
AccessToken accessToken = AccessToken.getCurrentAccessToken();
- 1
如果accessToken!=null或者accessToken没有过期,则可以通过accessToken直接获取登录token,accessToken.getToken()
否则再登陆成功之后,通过loginResult获取loginResult.getAccessToken().getToken()
三、Facebook登录Key Hash配置
1、下载并安装OpenSSL
从 http://slproweb.com/products/Win32OpenSSL.html 获取,下载如图所示第一个即可。
将下载的软件安装到默认路径中,默认路径为C盘,运行cmd,在命令行中进入 openssl.exe的路径,一般为 C:\OpenSSL-Win32\bin 。
2、生成Key Hash值
使用命令:
Keytool -exportcert -alias <YourAppKetStoreAlias> -keystore <KeyStorePath> | openssl sha1 -binary | openssl base64
- 1
注意: 应该为 游戏线上apk签名文件的alias,应该为签名文件keystore的所在路径。
执行后 提示“输入密钥库口令”,则输入口令并回车。点击回车出现的28位字符串,即为需要的key Hash值。
如果遇到出现警告,该警告可忽略。
在红色框内填入前面获取到的key hash值,然后点击右下角的 Save Changes按钮保存配置。
四、Facebook开发模式修改为线上模式
在开发模式下,只能使用facebook后台添加的开发者账号进行登录,其他账号无法正常登陆。等APP上线时,需要将facebook的开发模式修改。
1、填写Contact Email(必填)
在应用的setting–>Basci中,填写Contact Email,如图:
2、切换模式
切换到 Status&Review页面,修改2处按钮为Yes。
转:http://blog.csdn.net/liuweiballack/article/details/49816871
Android平台接入Facebook登录的更多相关文章
- android应用集成facebook登录
之前都是做国内的应用开发,没有用过国外的三方登录,比如谷歌登录.facebok登录,最近参与了一个海外的支付相关的项目,调研了一下谷歌登录和facebook登录,其实调研之后觉得也是很简单的,尤其 ...
- Android平台接入OneNET
1. OneNET简介 中国移动物联网开放平台是由中国移动打造的PaaS物联网开放平台. 平台能够帮助开发者轻松实现设备接入与设备连接,提供综合性的物联网解决方案,实现物联网设备的数据获取,数据存储, ...
- 为Android游戏接入第三方登录功能
1. “游戏客户端”调用“SDK客户端”的登录功能向“SDK服务端”进行身份认证 2. 验证通过后,“游戏客户端”可得到用户信息,根据游戏逻辑可将用户信息传给“游戏服务器”进行验证 3. “游戏服务器 ...
- 手游服务器端接入facebook的SDK
手游如果支持facebook登录,就要接入facebook的登录SDK.刚好工作中自己做了这一块的接入功能现在记录分享下来提供一个参考. 当前只是接入了登录这个功能,先简单的说说接入facebook登 ...
- Android 应用程序集成FaceBook 登录及二次封装
1.首先在Facebook 开发者平台注册一个账号 https://developers.facebook.com/ 开发者后台 https://developers.facebook.com/ap ...
- 在Android上实现使用Facebook登录(基于Facebook SDK 3.5)
准备工作: 1. Facebook帐号,国内开发者需要一个vpn帐号(网页可以浏览,手机可以访问) 2. 使用Facebook的SDK做应用需要一个Key Hashes值. 2 ...
- android开发学习——facebook第三方登录,看了你不会后悔
给APP用原生android进行facebook第三方登录. 我们做一件事情,首先得了解其原理,这样才不会迷茫,才知道自己做到什么程度了,心里才会有底. 所以,第一步,了解第三方登录的原理:下面贴一些 ...
- Android之第三方平台实现QQ登录和QQ分享
目前大多数APP都包含了第三方平台的登录,特别是QQ和微信,这篇博客主要讲的是如何实现QQ第三方平台实现QQ登录和分享功能,功能包含: 登录授权登录获取用户信息(昵称,头像,地址等) QQ分享给好友 ...
- Android 版 Facebook 登录
Android 版 Facebook SDK 让用户可以通过 Facebook 登录注册您的应用.通过 Facebook 登录您的应用时,用户可以向应用授予权限,以便您可以检索信息或以用户的身份在 F ...
随机推荐
- iOS 中长按手势回调会被触发过两次
Long-press gestures are continuous. The gesture begins (UIGestureRecognizerStateBegan) when the numb ...
- Centos7永久修改IP地址
Centos7永久修改IP地址 永久修改IP地址,即为设置静态的IP地址. 一.修改IP地址前需要准备的工作 1.虚拟机需要使用桥接的网络模式 虚拟机关机状态下,点击"编辑虚拟机设置&quo ...
- 【GDKOI2016】 魔卡少女 线段树
题目大意:给你一个长度为n的序列${a_1....a_n}$,有$m$次操作 每次操作有两种情况:修改$a_i$的值,询问$[l,r]$中所有子区间的异或和. 数据范围:$n,m≤10^5$,$a_i ...
- 【HDU5126】 stars k-d树
题目大意:有$m$个操作,分两种:在指定三维坐标内加入一个点,询问指定空间内点的数量. 其中$m≤5*10^{4},1≤x,y,z≤10^9$ 这题几乎就是裸的$k-d$树啊.我们动态维护一棵$k-d ...
- 如何在NAS上安装Git Server
前段时间一时兴起,买了一个NAS,具体型号是QNAP TS-269L.一方面用作硬盘存储数据,另一方面为了方便就在上面搭了一个Git代码服务器.下面详述一下这个Git Server是如何搭建起来的. ...
- Mac OS配置Android SDK环境变量(当不存在 .bash_profile 文件的时候)
苹果系统已经包含完整的J2SE,其中就有JDK和JVM(苹果叫VM). 如果要在MAC系统下开发CODE.可以先装个IDE(NETBEANS/Eclipse等),而后不需要装JDK和JVM了,MAC下 ...
- 怎么将一张100KB以上大小的电子图片压缩成30KB以内
不多说,直接上干货! 方法一: 怎么将一张100KB以上大小的电子照片压缩成30KB以内. 先将这张100KB以上大小的电子照片,新建一个word,放入.选中照片,右击,另存为,格式依然还是选择.jp ...
- c# static用法
有时候写程序时常常遇到这样的情况: 1.定义了变量和方法不知道什么时候该加上static修饰符. 2.static变量和方法与非static变量和方法有什么区别? 3.在一个类的静态方法里为什么不 ...
- 面向UI编程框架:ui.js框架思路详细设计
由于上一次的灵光一闪,萌生了对面向UI编程的思想实现.经过一段时间的考虑和设计,现在将思想和具体细节记录下来: 具体思路描述: 在UI.config文件中,配置所有参数,比如页面模板.所有组件.组件控 ...
- java学习--Reflection反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制. ...