My Facebook Войти активность, если это поможет:Facebook Профиль GetName() на Android всегда возвращаются нулевой
public class LoginActivity extends AppCompatActivity {
private LoginButton loginButton;
private CallbackManager callbackManager;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
setContentView(R.layout.activity_login);
loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions("public_profile", "user_friends");
final Intent myIntent = new Intent(this, MapsActivity.class);
if (isLoggedIn()) {
startActivity(myIntent);
finish();
return;
}
loginButton.setOnClickListener(new View.OnClickListener() {
public void onClick(final View v) {
// Callback registration
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
LoginManager.getInstance().logInWithReadPermissions(LoginActivity.this, Arrays.asList("public_profile", "user_friends"));
startActivity(myIntent);
finish();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
}
});
}
});
}
private boolean isLoggedIn() {
AccessToken accessToken = AccessToken.getCurrentAccessToken();
return accessToken != null;
}
}
и код, я использую, чтобы попытаться получить чье-то имя от их ID:
new Profile(creatorId, null, null, null, null, null).getFirstName()
Я попробовал вызов getFirstName(), показанный здесь, в дополнение к getName(), и оба всегда возвращают null. Я думал, что наличие «public_profile» в моих запрошенных разрешениях Facebook позволит мне получить чье-то имя таким образом, если они разрешили мое приложение во время входа в систему через Facebook. Однако у меня не всегда было «public_profile» в моих запрошенных разрешениях на Facebook, но я заставил всех пользователей повторно войти через Facebook в мое приложение с этим текущим кодом и разрешениями, поэтому я решил, что это устранит эту проблему. Тем не менее, эта функция возвращает значение null, и я не уверен, почему.
Кроме того, creatorId может быть идентификатором FB другого пользователя, кроме текущего пользователя FB. (В прошлом они использовали авторизованное + приложение, а не только тот, кто в данный момент зарегистрировался на этом устройстве Android).