0

Android 앱에 Facebook 로그인 방법을 만들고 있습니다. 사용자 정의 로그인 버튼을 사용하고 있습니다. 이것은 페이스 북의 앱이 설치되지 않았을 때 잘 작동하며 로그인 버튼을 터치 한 후에 나타나는 인터페이스를 통해 수동으로 로그인해야합니다. 내가 직면하고있는 문제는 Facebook 앱을 설치할 때이 방법이 제대로 작동하지 않는다는 것입니다. 이 경우 로그인 버튼을 누르면 "Loading"캡션이있는 흑백 원형 로더가 시작되고 그 로더는 영원히 계속됩니다. 로그인은 일어나지 않습니다. 어떻게 해결할 수 있습니까? 다음은 구현 된 코드입니다.Android에서 Facebook 앱을 통해 로그인 할 수 없습니다.

내부에서 onCreate 방법

callbackManager=CallbackManager.Factory.create(); 
    loginButton= (LoginButton)findViewById(R.id.login_button); 
    btnFBLogin= (TextView) findViewById(R.id.btnFBLogin); 
    btnFBLogin.setSelected(true); 
    btnFBLogin.startAnimation(animationButtonFadeIn); 
    btnFBLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      progressDialog = new ProgressDialog(LoginActivity.this); 
      progressDialog.setMessage("Loading..."); 
      progressDialog.show(); 
      loginButton.performClick(); 
      loginButton.setPressed(true); 
      loginButton.invalidate(); 
      loginButton.registerCallback(callbackManager, mCallBack); 
      loginButton.setPressed(false); 
      loginButton.invalidate(); 
     } 
    }); 

내부에 남아있는 방법 제대로 키 해시를 입력하지 않은 의미

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 

private FacebookCallback<LoginResult> mCallBack = new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
     progressDialog.dismiss(); 
     GraphRequest request = GraphRequest.newMeRequest(
       loginResult.getAccessToken(), 
       new GraphRequest.GraphJSONObjectCallback() { 
        @Override 
        public void onCompleted(
          JSONObject object, 
          GraphResponse response) { 
         try { 
          btnFBLogin.setVisibility(View.GONE); 
          user = new User(); 

          facebook_id = object.getString("id").toString(); 
          user.uniqueID = facebook_id; 
          full_name = object.getString("name").toString(); 
          user.name = full_name; 
          try{ 
           email = object.getString("email").toString(); 
          }catch (Exception e){ 
           email = "email_not_provided"; 
          }finally { 
           user.email = email; 
          } 
          PrefUtils.setCurrentUser(user, LoginActivity.this); 
          userRecord(facebook_id, full_name, email, "fb", null); 
         }catch (Exception e){ 
          e.printStackTrace(); 
         } 
        } 
       }); 

     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,email,gender, birthday"); 
     request.setParameters(parameters); 
     request.executeAsync(); 
    } 

    @Override 
    public void onCancel() { 
     progressDialog.dismiss(); 
    } 

    @Override 
    public void onError(FacebookException e) { 
     progressDialog.dismiss(); 
    } 
}; 

답변

1
+1

감사합니다, 그것은 일을 ...! :) 사실 나는 안드로이드의 싱글 톤 클래스에서받은 올바른 해시 키를 입력했지만 아직 페이스 북 개발자 콘솔에 추가 된 다른 키가있었습니다. 콘솔에 추가 한 오류 메시지와 함께 페이스 북 로그인 자체에이 키가 있습니다. – harshvardhan

관련 문제