我正在尝试从Facebook获取用户的当前国家/地区。我可以提取电子邮件,ID,姓氏,名字等数据,但是当涉及到国家/地区时,我找不到正确的代码。有人可以告诉我所需的权限以及如何从对象中获取数据。
目前这些是我的权限
loginButton.setReadPermissions(Arrays.asList("public_profile", "email"));
我正在像这样获取数据
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
GraphRequest graphRequest = GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
Log.d("JSON", "" + response.getJSONObject().toString());
try {
name = object.getString("name");
first_name = object.optString("first_name");
last_name = object.optString("last_name");
fname.setText(first_name);
lname.setText(last_name);
e_mail.setText(email);
dp1.setProfileId(object.optString("id"));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
/*AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
displayMessage(profile);*/
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,first_name,last_name,email,picture.type(large)");
graphRequest.setParameters(parameters);
graphRequest.executeAsync();
}
要获取当前位置,请执行以下操作:
只需请求正确的权限,例如user_location
之后,
编辑
使用以下代码行:
String currentCity = obj.getJSONObject("location").getString("name");
作为:
try {
name = object.getString("name");
first_name = object.optString("first_name");
last_name = object.optString("last_name");
String currentCity = obj.getJSONObject("location").getString("name");
fname.setText(first_name);
lname.setText(last_name);
e_mail.setText(email);
dp1.setProfileId(object.optString("id"));
} catch (JSONException e) {
e.printStackTrace();
}
还添加location
以下内容:
parameters.putString("fields", "id,name,first_name,last_name,email,location,picture.type(large)");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句