无法解析方法getInnerJSONObject()

时间:2015-09-03 18:13:54

标签: android facebook graph

我正在尝试从使用Facebook登录我的Android应用程序的用户中提取信息。当getInnerJSONResponse()时,我得到一个无法解析的方法。

@Override
                    public void onCompleted(JSONObject object, GraphResponse response) {
                        ParseUser user = new ParseUser();

                        JSONObject jsonResponseObject = user.getInnerJSONObject();
                        String email = jsonResponseObject.getProperty("email");
//                        String firstName = jsonResponseObject.getFirstName();
//                        String lastName = jsonResponseObject.getLastName();
                    }
                });
                Bundle param = new Bundle();
                param.putString("fields", "cover, birthday, email, first_name, last_name, ");
                request.setParameters(param);
                request.executeAsync();

2 个答案:

答案 0 :(得分:0)

尝试使用:

 String email = jsonResponseObject.getString("email");
 String firstName = jsonResponseObject.getString("first_name");
 String lastName = jsonResponseObject.getString("last_name");

请参阅documentation

答案 1 :(得分:0)

使用此代码。Check this Answer



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 {
					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();
					}
					name = object.getString("name");
					email = object.getString("email");
					gender = object.getString("gender");
					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());
	}
});
&#13;
&#13;
&#13;