前言
昨天公司已經(jīng)同意了提交的辭職申請,但目前還需要一段時間進行項目的交接洼专。所以利用這段空閑時間整理幾篇技術(shù)文章啊研,用于對自己的鞏固。
準備工作
保證自己的網(wǎng)絡(luò)已經(jīng)翻墻缴川,能夠進入Facebook網(wǎng)頁
一個FB開發(fā)者賬號,如若沒有可以免費申請描馅,附上官方網(wǎng)址把夸。
流程
點擊我的應(yīng)用-添加新應(yīng)用,創(chuàng)建新的應(yīng)用
-
點擊快速入門铭污,選擇Android平臺恋日,然后按照FB的要求一步步走完即可。
圖1
其中有一下幾點需要注意:
圖2
- 在2.導(dǎo)入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包的重復(fù)引用岂膳,2.指定具體的版本而不是[4,5)是為了防止隨著FB SDK的更新而導(dǎo)致sdk集成失敗。
- 在4.添加開發(fā)和發(fā)布密鑰散列中除了官方的獲取方法外磅网,還可以通過代碼:
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.自定義登錄按鈕,然后通過代碼實現(xiàn):
LoginManager.getInstance().logInWithReadPermissions(AppLoginActivity.this, Arrays.asList("public_profile", "user_friends"));
生成測試用戶,點擊用戶身份-測試用戶簸喂”兴溃可以生成多個FB測試賬戶用于測試。
目前APP還是在開發(fā)狀態(tài)喻鳄,在APP上架之前還需要將FB項目對外公開扼倘,不然普通用戶依舊無法登陸。點擊應(yīng)用審核-確認對外公開即可除呵。
總結(jié)
好了再菊,到目前為止已經(jīng)集成了Facebook登錄,總的來說比較簡單竿奏,按照官方的步驟一步步實現(xiàn)就好袄简。
后續(xù)還會有FB的分享、好友邀請泛啸、點贊等功能集成的文章绿语,請繼續(xù)關(guān)注。如有什么問題候址,可以聯(lián)系我吕粹,聯(lián)系方式: