官方教程地址:
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登录的更多相关文章

  1. android应用集成facebook登录

      之前都是做国内的应用开发,没有用过国外的三方登录,比如谷歌登录.facebok登录,最近参与了一个海外的支付相关的项目,调研了一下谷歌登录和facebook登录,其实调研之后觉得也是很简单的,尤其 ...

  2. Android平台接入OneNET

    1. OneNET简介 中国移动物联网开放平台是由中国移动打造的PaaS物联网开放平台. 平台能够帮助开发者轻松实现设备接入与设备连接,提供综合性的物联网解决方案,实现物联网设备的数据获取,数据存储, ...

  3. 为Android游戏接入第三方登录功能

    1. “游戏客户端”调用“SDK客户端”的登录功能向“SDK服务端”进行身份认证 2. 验证通过后,“游戏客户端”可得到用户信息,根据游戏逻辑可将用户信息传给“游戏服务器”进行验证 3. “游戏服务器 ...

  4. 手游服务器端接入facebook的SDK

    手游如果支持facebook登录,就要接入facebook的登录SDK.刚好工作中自己做了这一块的接入功能现在记录分享下来提供一个参考. 当前只是接入了登录这个功能,先简单的说说接入facebook登 ...

  5. Android 应用程序集成FaceBook 登录及二次封装

    1.首先在Facebook 开发者平台注册一个账号 https://developers.facebook.com/ 开发者后台  https://developers.facebook.com/ap ...

  6. 在Android上实现使用Facebook登录(基于Facebook SDK 3.5)

    准备工作: 1.       Facebook帐号,国内开发者需要一个vpn帐号(网页可以浏览,手机可以访问) 2.       使用Facebook的SDK做应用需要一个Key Hashes值. 2 ...

  7. android开发学习——facebook第三方登录,看了你不会后悔

    给APP用原生android进行facebook第三方登录. 我们做一件事情,首先得了解其原理,这样才不会迷茫,才知道自己做到什么程度了,心里才会有底. 所以,第一步,了解第三方登录的原理:下面贴一些 ...

  8. Android之第三方平台实现QQ登录和QQ分享

    目前大多数APP都包含了第三方平台的登录,特别是QQ和微信,这篇博客主要讲的是如何实现QQ第三方平台实现QQ登录和分享功能,功能包含: 登录授权登录获取用户信息(昵称,头像,地址等) QQ分享给好友 ...

  9. Android 版 Facebook 登录

    Android 版 Facebook SDK 让用户可以通过 Facebook 登录注册您的应用.通过 Facebook 登录您的应用时,用户可以向应用授予权限,以便您可以检索信息或以用户的身份在 F ...

随机推荐

  1. WPF一步步开发XMPP IM客户端1:入门

    [起因&目标] 因为工作原因接触openfire服务端和spark客户端开发,主要是基于openfire扩展开发了针对企业用途的服务器插件,还开发了各个平台上的客户端(Windows\mac\ ...

  2. web应用配置虚拟路径映射方式一配置不成功问题解决办法

    配置过程图: 为了方便输入,先修改Tomcat的conf文件下的server.xml文件 默认端口修改为80 配置完成之后访问报404错误解决办法: 一.如果配置前已经开启了Tomcat服务器,配置完 ...

  3. 【BZOJ4916】神犇和蒟蒻 杜教筛

    题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4916 第一个询问即求出$\sum_{i=1}^{n} { \mu (i^2)} $,考虑 ...

  4. Scrapy框架--cookie的获取/传递/本地保存

    环境:Python3.6 + Scrapy1.4 我要实现的东西:1. 完成模拟登陆         2. 登陆成功后提取出cookie,然后保存到本地cookie.txt文件中         3. ...

  5. Dubbo架构设计详解(转载)

    原文地址:http://shiyanjun.cn/archives/325.html Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解 ...

  6. implements和extends的区别

    extends可以理解为全盘继承了父类的功能 implements可以理解为为这个类附加一些额外的功能 举个例子,Animal是一个父类,cat,dog,bird,insect都extends了Ani ...

  7. 如何删除Eclipse里某个工作空间?

    很多时候,一个Eclipse中或多或少的都会有那么几个工作空间(workspace),但是久而久之你会发现有些工作空间你觉得不再需要了或者觉得碍眼,怎么办? 其实很简单,方法有两种. 1.打开你的Ec ...

  8. nuxt踩过的坑

    nuxt.js 简单介绍 nuxt官网:https://zh.nuxtjs.org/ 1.nuxt.js的原理图: 具体的原理介绍官网有详细的解释,欢迎移步官网,这里不再复述. 2.nuxt.js的优 ...

  9. 虚拟化明星——深挖轻量级容器docker

    docker是一个轻量级容器,属于操作系统层面的虚拟化技术,封装了文件系统(AUFS)以及网络互联,进程隔离等特性. 传统虚拟化架构: docker虚拟化架构: 可以看出,docker是没有Guest ...

  10. 怎么掌握微信小程序的取值、传值、数据存储

    小程序界面设定如下 父级页面:A界面 子级页面:B界面 异级页面:C界面 一.本页面取值(A界面→A界面) a.例如:input输入文字获取到value(键盘输入时触发) wxml: <inpu ...