前言

  这几天应公司需求,需要在项目中接入facebook的登录,现在闲下来后再次巩固一下!

准备工作

  1. 保证自己的网络已经翻墙,能够进入Facebook网页
  2. 准备一个FB的开发者账号,如果没有可以免费申请,附上官方网址

流程

  1、登录facebook后,点击左侧 “展开”栏,

  2、选择点击管理应用---添加新应用,创建新的应用,然后根据自己的需求选择相应的用途,根据他的要求填写就可以了。

  3、创建完毕后,添加产品时选择Facebook登录

  4、点击设置后,选择Android平台,然后按照FB的步骤完成。

这里具体演示下这些步骤

  1、下载这里就不讲解了

  2、导入Facebook SDK

    

        对应的在Android Studio中的是
        

      

      对应的在Android Studio中的是

    随后构建一下项目(点击上面锤子的icon按钮进行构建)

  3、在FB上填写Android项目信息,填写完后要Save一下

  4、添加密钥
    这个根据文档去输入相应的命令就可以得到密钥了,不过有的设置了密码的就需要输入密钥密码才能得到密钥,然后在FB的文档中填入这个生成的密钥就可以了,也需要记得Save一下。

  5、启用单点登录

    这个单击启用单点登录,然后Save

  6、根据Facebook上面的文档在AndroidStudio的相应位置添加代码

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

<string name="facebook_app_id">应用编号</string> <string name="fb_login_protocol_scheme">fb+应用编号</string>

      3、打开 /app/manifest/AndroidManifest.xml 文件。

      4、在 application 元素后添加以下 uses-permission 元素:

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

      5、在 application 元素中添加以下 meta-data 元素、一个针对 Facebook 的 activity 元素以及一个针对 Chrome 自定义选项卡的 activity 元素和意向筛选条件:

<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> <activity android:name="com.facebook.FacebookActivity" android:configChanges= "keyboard|keyboardHidden|screenLayout|screenSize|orientation" android:label="@string/app_name" /> <activity android:name="com.facebook.CustomTabActivity" android:exported="true"> <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.BROWSABLE" /> <data android:scheme="@string/fb_login_protocol_scheme" /> </intent-filter> </activity>

  7、设置登录按钮

    我这里是直接在项目中设置按钮登录

      js代码

onClickLogin(){
jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "LoginFb", "()V");
}

            java代码

public static void LoginFb(){
LoginManager.getInstance().logInWithReadPermissions(sCocos2dxActivity, Arrays.asList("public_profile"));
}

  8、注册回调

    在AppActivity的onCreate方法中添加以下代码

sCocos2dxActivity = this;
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Toast.makeText(getApplicationContext(), "facebook登录成功" + loginResult.getAccessToken().getUserId(), Toast.LENGTH_SHORT).show();
final String Fid = loginResult.getAccessToken().getUserId();
Cocos2dxHelper.runOnGLThread(new Runnable() {
@Override
public void run() {
Cocos2dxJavascriptJavaBridge.evalString("window.FbLoginCallback("+Fid+");");
}
});
} @Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "facebook登录取消", Toast.LENGTH_SHORT).show();
} @Override
public void onError(FacebookException error) {
Toast.makeText(getApplicationContext(), "facebook登录错误", Toast.LENGTH_SHORT).show();
}
});

    最后,在 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);
}

最后在导出的项目中点击按钮看看效果

集成Facebook SDK之Facebook登录的更多相关文章

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

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

  2. 网站如何集成Facebook和Twitter第三方登录

    最近公司要求做海外的第三方登录:目前只做了Facebook和Twitter;国内百度到的信息太少VPN FQ百度+Google了很久终于弄好了.但是做第三方登录基本上都有个特点就是引入必须的js,设置 ...

  3. FaceBook SDK登录功能实现(Eclipse)

    由于公司游戏要进行海外推广,所以要我们接入FBSDK 实现登录,分享,投放,所以写这篇文章,也算是个工作总结.1.资料 (1).FB SDK github源码地址为 (2): [FB SDK中文接入文 ...

  4. SDK接入(1)之Android Facebook SDK接入

    SDK接入(1)之Android Facebook SDK接入 由于游戏已上线,且处于维护阶段,所以有空写写各种SDK接入过程和遇到的问题,也当作一种工作总结.SDK接入主流分为这么几类,登录.支付. ...

  5. 分享前端Facebook及Twitter第三方登录

    最近公司要求做海外的第三方登录:目前只做了Facebook和Twitter;国内百度到的信息太少VPN FQ百度+Google了很久终于弄好了.但是做第三方登录基本上都有个特点就是引入必须的js,设置 ...

  6. 关于Facebook和Google+授权登录

    实际中遇到需要Facebook和Google+等第三方授权登录自己的Web应用(可能还有Android和IOS的手机应用),本质上都是JS SDK的官方应用.这时候不得不去他们官方查看文档. 注:一下 ...

  7. iOS Facebook SDK

    iOS 使用 Facebook SDK 可以登录,分享,发布通知(Notifications)等. 首先下载 Facebook SDK.然后在 Facebook Developer 上注册自己的 ap ...

  8. 计算facebook sdk需要的key hashes

    1. 下载openssl,在C盘创建openssl文件夹,解压下载的zip到openssl文件夹. 2. 找到debug.keystore. windows下在C:\Users\用户名\.androi ...

  9. Facebook SDK

    <?php session_start(); header('Content-type:text/html; charset=UTF-8'); require_once './facebook- ...

随机推荐

  1. Windows下6款实用软件(强烈推荐!)

    Windows下6款实用软件 1.notepads Notepads作为一款编辑器,美观.轻量,功能强大,支持多标签页.Markdown.日常文本编辑.查看,Notepads轻松胜任,如果厌烦了Win ...

  2. 数据库事务(2)---ACID与并发问题

    事务 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit).在计算机术语中,事务通常就是指数据库事务. 概念 一 ...

  3. 尚硅谷maven视频教程笔记

    07.尚硅谷_Maven_部署Maven核心程序.avi 第一步先安装jdk 第二步下载maven 特别需要注意的是maven不能存储在有中文和空格的目录下面 3.调试是否安装成功,在cmd中输入 m ...

  4. Jenkins入门-环境搭建(1)-转

    因为Jenkins的环境搭建比较简单,本来不想来介绍,但是发现有些入门小朋友,从各种网站上下载的各种安装包来搭建,最后导致出现了各种千奇百怪的问题,介于这种情况下我决定还是来写一下Jenkins的环境 ...

  5. Python学习笔记——基础语法篇

    一.Python初识(IDE环境及基本语法,Spyder快捷方式) Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,没有编译过程,可移植,可嵌入,可扩展. IDE 1.检查Pyth ...

  6. 暑假集训Day2 互不侵犯(状压dp)

    这又是个状压dp (大型自闭现场) 题目大意: 在N*N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. ...

  7. 程序员的修炼-我们为什么会编写BUG

    在最近的一周,我维护的业务系统出现了很多坏毛病,一周七天crash掉了4次,每次都需要都是因为一点很小的问题,触发了蝴蝶效应,导致整个系统全盘崩溃,于是产生除了叙述本篇的想法,当然这并不是为了掩盖我在 ...

  8. 请解释ASP. NET中的web页面与隐藏类之间的关系

    请解释ASP.NET中的web页面与其隐藏类之间的关系 其实页面与其隐藏类之间就是一个部分类的关系,你在页面上放一个一个的控件就是在这个类中定义一个一个的属性, 因为是同一个类的部分类的关系,所以隐藏 ...

  9. appium移动端自动化测试环境搭建windows-appium-android

    第一步:安装jdk 安装jdk(1.7版本以上) 安装完成设置jdk环境变量(百度查询) cmd命令下键入 java -version命令检查jdk是否安装成功且设置环境变量成功,如下图所示: 第二步 ...

  10. Centos8 - 图形界面和命令行切换

    查看目前默认的启动方式 systemctl get-default 命令行模式:multi-user.target 图形界面模式:graphical.target 设置为图形界面模式 systemct ...