前言
昨天公司已经同意了提交的辞职申请,但目前还需要一段时间进行项目的交接。所以利用这段空闲时间整理几篇技术文章,用于对自己的巩固。
准备工作
保证自己的网络已经翻墙,能够进入Facebook网页
一个FB开发者账号,如若没有可以免费申请,附上官方网址。
流程
点击我的应用-添加新应用,创建新的应用
-
点击快速入门,选择Android平台,然后按照FB的要求一步步走完即可。
其中有一下几点需要注意:
- 在2.导入Facebook SDK中,最好不要用
implementation 'com.facebook.android:facebook-android-sdk:[4,5)'
而是改用
implementation ("com.facebook.android:facebook-android-sdk:4.26.0") {
exclude module: 'support-v4'
}
原因有两点:1.是去掉FB sdk中的v4包防止support包的重复引用,2.指定具体的版本而不是[4,5)是为了防止随着FB SDK的更新而导致sdk集成失败。
- 在4.添加开发和发布密钥散列中除了官方的获取方法外,还可以通过代码:
try {
PackageInfo info = getActivity().getPackageManager().getPackageInfo(getActivity().getPackageName(), PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
String KeyHash = Base64.encodeToString(md.digest(), Base64.DEFAULT);
Log.d("KeyHash:", "KeyHash:" + KeyHash);//两次获取的不一样 此处取第一个的值
// Toast.makeText(this, "FaceBook HashKey:"+KeyHash, Toast.LENGTH_SHORT).show();
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
然后打包成正式包运行来获得。
- FB登录按钮的集成有两种方式:
- 1.使用官方的按钮LoginButton按钮代码:
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp" />
- 2.自定义登录按钮,然后通过代码实现:
LoginManager.getInstance().logInWithReadPermissions(AppLoginActivity.this, Arrays.asList("public_profile", "user_friends"));
生成测试用户,点击用户身份-测试用户。可以生成多个FB测试账户用于测试。
目前APP还是在开发状态,在APP上架之前还需要将FB项目对外公开,不然普通用户依旧无法登陆。点击应用审核-确认对外公开即可。
总结
好了,到目前为止已经集成了Facebook登录,总的来说比较简单,按照官方的步骤一步步实现就好。
后续还会有FB的分享、好友邀请、点赞等功能集成的文章,请继续关注。如有什么问题,可以联系我,联系方式: