其他分享
首页 > 其他分享> > Android 一步步梳理Facebook登录流程

Android 一步步梳理Facebook登录流程

作者:互联网

目录

前言

准备

开始

总结


前言

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

准备

开始

        到这里你应该是创建好应用了,点击你的应用进入应用首页,找到左侧有个登录选项,点击快速登录

         然后选择android,开始集成流程:

         大概看一下,总共10步,我们来看一下步骤:

         这里列一下登录的流程代码:

//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<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        // App code
    }

    @Override
    public void onCancel() {
        // App code
    }

    @Override
    public void one rror(FacebookException exception) {
        // App code
    }
});

//如果你使用自定义按钮
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
    @Override
    public void onSuccess(LoginResult loginResult) {
        // App code
    }

    @Override
    public void onCancel() {
        // App code
    }

    @Override
    public void one rror(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-sdkicon-default.png?t=L892https://github.com/facebook/facebook-android-sdk

总结

        以上即是本篇的全部内容,如有疑问和错误,欢迎评论指出,谢谢。

标签:code,登录,一步步,void,facebook,Override,Facebook,Android,public
来源: https://blog.csdn.net/baidu_38627723/article/details/120467948