android|Android 一步步梳理Facebook登录流程

目录
前言
准备
开始
总结
预告
前言 在国内做facebook,google登录或者支付还是有些麻烦的。首先要有梯子,然后还要一堆复杂的配置。最后测试起来还有一堆坑在等着你。对比起来,国内支付宝微信的登录支付就简单多了。
准备

  • 可以访问外网的环境
  • 注册facebook开发账号,Facebook 开发者
  • 创建应用,做各种配置(重点要配置获取信息的权限,测试账号)
  • 手机上下载一个facebook客户端,我们应用会调起
开始 到这里你应该是创建好应用了,点击你的应用进入应用首页,找到左侧有个登录选项,点击快速登录
android|Android 一步步梳理Facebook登录流程
文章图片

然后选择android,开始集成流程:
android|Android 一步步梳理Facebook登录流程
文章图片

大概看一下,总共10步,我们来看一下步骤:
  • 第一、二步是sdk集成,第一步是下载到本地集成,第二步是直接配置依赖。
  • 第三步是填入你的app包名和你拉起登录的activity的全路径
  • 第四步比较重要,也是大部分人遇到问题的地方,这里配置出错,登录时将会报错,我的报错信息是:将你登入到此应用程序时出错,请稍后再试。具体可以参考我另一篇文章(第三个问题解决):Android FaceBook登录问题记录
  • 第五步看需求,第六步直接cv,第七步看需求,第8步看需求,我用的是自定义的按钮,第九步和第十步直接参考代码来写
这里列一下登录的流程代码:
//1.创建CallbackManager,接收登录回调信息 callbackManager = CallbackManager.Factory.create(); //2.注册登录监听 //如果你使用的是facebook sdk 提供的登录按钮: loginButton = (LoginButton) findViewById(R.id.login_button); loginButton.setReadPermissions("email"); // If using in a fragment loginButton.setFragment(this); // Callback registration loginButton.registerCallback(callbackManager, new FacebookCallback() { @Override public void onSuccess(LoginResult loginResult) { // App code }@Override public void onCancel() { // App code }@Override public void onError(FacebookException exception) { // App code } }); //如果你使用自定义按钮 callbackManager = CallbackManager.Factory.create(); LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback() { @Override public void onSuccess(LoginResult loginResult) { // App code }@Override public void onCancel() { // App code }@Override public void onError(FacebookException exception) { // App code } }); //3.检查登录状态 AccessToken accessToken = AccessToken.getCurrentAccessToken(); boolean isLoggedIn = accessToken != null && !accessToken.isExpired(); //4.发起登录 LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("public_profile")); //这里public_profile表示你想要获取的权限,你也可以这样写 //LoginManager.getInstance().logInWithReadPermissions(this, //Arrays.asList("public_profile","email","user_photos)); //public_profile:允许应用在用户节点中读取默认公开资料字段。系统将自动向所有应用授予此权限。 //email:允许您的应用读取用户的首选邮箱。 //user_photos:允许您的应用读取用户上传到 Facebook 的照片。 //这里也是容易出现问题的地方,我们想要这些权限必须先在facebook应用首页-应用审核-权限和功能中将申请这些权限的高级访问权限才能使用,具体可参考(问题2): //https://blog.csdn.net/baidu_38627723/article/details/120438988?spm=1001.2014.3001.5501//5.在onActivityResult中接收登录回调,并转交给callbackManager处理 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { callbackManager.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data); }//6.然后再第2步注册监听的地方会获取登录信息:如果成功会获取到LoginResult,可以拿到token交给服务器验证//7.登出 LoginManager.getInstance().logInWithReadPermissions(activity, arrayListOf("public_profile"))

如果还需要集成Facebook的其他功能,如分享,应用连接等功能,可以参考:
facebook-android-sdkandroid|Android 一步步梳理Facebook登录流程
文章图片
https://github.com/facebook/facebook-android-sdk
总结 以上即是本篇的全部内容,如有疑问和错误,欢迎评论指出,谢谢。
预告 【android|Android 一步步梳理Facebook登录流程】之后会继续推出Google,支付宝,微信等第三方登录,支付的文章。

    推荐阅读