[英]Android Facebook Login get Email
我有一個帶有Facebook登錄按鈕並顯示用戶信息的簡單應用。 我正在嘗試使用多種方法來獲取用戶電子郵件,但它會返回空值。 如何獲取用戶電子郵件?
loginButton=(LoginButton)findViewById(R.id.loginButton);
loginButton.setReadPermissions(Arrays.asList("public_profile", "email"));
callbackManager= CallbackManager.Factory.create();
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
loginButton.setVisibility(View.GONE);
//how to get user email here
finish();
}
@Override
public void onCancel() {
Toast.makeText(PopUpFaceBook.this,"تم الغاء تسجيل الدخول",Toast.LENGTH_SHORT).show();
finish();
}
@Override
public void onError(FacebookException error) {
Toast.makeText(PopUpFaceBook.this,"هناك مشكلة فى تسجيل الدخول حاول مجددا",Toast.LENGTH_SHORT).show();
finish();
}
});
在onSuccess()
回調方法中使用以下代碼:
LoginResult loginR = loginResult;
// App code
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.v("LoginActivity", response.toString());
// Application code
try {
String email = object.getString("email");
String birthday = object.getString("birthday");
String gender = object.getString("gender");
String name = object.getString("name");
// 01/31/1980 format
} catch (JSONException ex) {
Log.d("JSonExceptioin", ex.toString());
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields","id,name,email,gender,birthday,picture,timezone");
request.setParameters(parameters);
request.executeAsync();
您可以為此使用Firebase,它確實可以幫助您獲取Facebook個人資料的所有信息,例如:1.電子郵件2.名稱3.個人資料照片等。
請按照以下鏈接中的步驟操作:
https://firebase.google.com/docs/auth/android/facebook-login
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.