目錄
前言
準備
開始
總結
預告
前言
在國內做facebook,google登錄或者支付還是有些麻煩的,首先要有梯子,然后還要一堆復雜的配置,最后測驗起來還有一堆坑在等著你,對比起來,國內支付寶微信的登錄支付就簡單多了,
準備
- 可以訪問外網的環境
- 注冊facebook開發賬號,Facebook 開發者
- 創建應用,做各種配置(重點要配置獲取資訊的權限,測驗賬號)
- 手機上下載一個facebook客戶端,我們應用會調起
開始
到這里你應該是創建好應用了,點擊你的應用進入應用首頁,找到左側有個登錄選項,點擊快速登錄

然后選擇android,開始集成流程:

大概看一下,總共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<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-sdk
https://github.com/facebook/facebook-android-sdk
總結
以上即是本篇的全部內容,如有疑問和錯誤,歡迎評論指出,謝謝,
預告
之后會繼續推出Google,支付寶,微信等第三方登錄,支付的文章,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/303079.html
標籤:其他
上一篇:??【Android精進之路-05】怎么創建Activity,如何啟動另一個Activity,干貨滿滿,建議收藏??
