我使用FB Sdk让用户通过FB登录,但是点击继续使用Facebook 按钮,屏幕在加载时卡住了......下面是屏幕截图。< / p>
这是我使用https://stackoverflow.com/a/29379794
的代码屏幕在加载时卡住的原因是什么?
答案 0 :(得分:0)
使用以下代码进行Facebook登录:
login.setLoginBehavior(LoginBehavior.WEB_ONLY);
login.setReadPermissions(Arrays.asList(
"public_profile", "email", "user_birthday", "user_friends"));
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.e("ACESS_ON_SUCCESS---", "" + loginResult.getAccessToken());
token = loginResult.getAccessToken();
GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.e("ACESS_ON_COMPLETED--", "" + AccessToken.getCurrentAccessToken());
Log.e("FaceBook Response", response.toString());
String responseStr = response.toString();
sharedpreferences = App.getInstance().getDefaultAppSharedPreferences();
editor = sharedpreferences.edit();
try {
if (responseStr.contains("\"id\"")) {
id = object.getString("id");
Log.e("USER-ID = ", id);
editor.putString(SharedPreferencesConstants.facebookId,id);
}
if (responseStr.contains("\"name\"")) {
name = object.getString("name");
Log.e("NAME = ", name);
editor.putString(SharedPreferencesConstants.userName,name);
}
if (responseStr.contains("\"email\"")) {
email = object.getString("email");
Log.e("EMAIL = ", email);
editor.putString(SharedPreferencesConstants.userEmail,email); }
if (responseStr.contains("\"birthday\"")) {
birthday = object.getString("birthday");
Log.e("BIRTHDAY = ", birthday);
editor.putString(SharedPreferencesConstants.userFbBirthday,birthday);
String strYear = birthday.substring(6, 10);
Log.e("BIRTHDAY LEN", strYear);
editor.putString(SharedPreferencesConstants.userFbBirthdayYear,strYear);
}
//EXTRACT PICTUREOBJECT FROM MAINJSONOBJECT::::---
if (responseStr.contains("\"picture\"")) {
JSONObject pictureObject = object.getJSONObject("picture");
Log.e("PICTUREOBJ FRM MAINOBJ", "" + pictureObject.toString());
//EXTRACT DATAOBJECT FROM PICTUREOBJECT::::---
JSONObject dataObject = pictureObject.getJSONObject("data");
//EXTRACT PROFILE_PIC FROM DATAOBJECT::::---
profile_pic = dataObject.getString("url");
Bundle params = new Bundle();
parameters.putString("limit", total_friends_count);
request1.setParameters(params);
request1.executeAsync();*/
}
@Override
public void onCancel() {
Log.e("Error","canceled");
}
@Override
public void onError(FacebookException error) {
Log.e("Error",error.getMessage());
Toast.makeText(WelcomeActivity.this, "FB Integration Failed", Toast.LENGTH_SHORT).show();
}
});
}