Search code examples
androidfacebookfacebook-graph-apifacebook-android-sdk

Facebook android sdk internal server error


I want to integrate Facebook signin in my android app. I am using Facebook-sdk-4.4.0 but getting a blank screen. I tried to debug my app using fiddler and noticed that webview is not able to get created because request to facebook are getting 500 internal server error as response.

Please help to figure out the mistake which I am making.

Fiddler response

Getting left image in my activity


Solution

  • Try with this code. It's work successfully.

    callbackManager = CallbackManager.Factory.create();
    
    loginButton = (LoginButton) findViewById(R.id.login_button);
    
    List < String > permissionNeeds = Arrays.asList("user_photos", "email",
    	"user_birthday", "public_profile", "AccessToken");
    loginButton.registerCallback(callbackManager,
    new FacebookCallback < LoginResult > () {@Override
    	public void onSuccess(LoginResult loginResult) {
    
    		System.out.println("onSuccess");
    
    		String accessToken = loginResult.getAccessToken()
    			.getToken();
    		Log.i("accessToken", accessToken);
    
    		GraphRequest request = GraphRequest.newMeRequest(
    		loginResult.getAccessToken(),
    		new GraphRequest.GraphJSONObjectCallback() {@Override
    			public void onCompleted(JSONObject object,
    			GraphResponse response) {
    
    				Log.i("LoginActivity",
    				response.toString());
    				try {
    					String id = object.getString("id");
    					try {
    						URL profile_pic = new URL(
    							"http://graph.facebook.com/" + id + "/picture?type=large");
    						Log.i("profile_pic",
    						profile_pic + "");
    
    					} catch (MalformedURLException e) {
    						e.printStackTrace();
    					}
    					String name = object.getString("name");
    					String email = object.getString("email");
    					String gender = object.getString("gender");
    					String birthday = object.getString("birthday");
    				} catch (JSONException e) {
    					e.printStackTrace();
    				}
    			}
    		});
    		Bundle parameters = new Bundle();
    		parameters.putString("fields",
    			"id,name,email,gender, birthday");
    		request.setParameters(parameters);
    		request.executeAsync();
    	}
    
    	@Override
    	public void onCancel() {
    		System.out.println("onCancel");
    	}
    
    	@Override
    	public void onError(FacebookException exception) {
    		System.out.println("onError");
    		Log.v("LoginActivity", exception.getCause().toString());
    	}
    });

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

    for step by step code check my answer here. facebook login with SDK4