Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Facebook Android SDK获取用户名和生日?_Android_Facebook_Facebook Login_Facebook Android Sdk - Fatal编程技术网

如何使用Facebook Android SDK获取用户名和生日?

如何使用Facebook Android SDK获取用户名和生日?,android,facebook,facebook-login,facebook-android-sdk,Android,Facebook,Facebook Login,Facebook Android Sdk,我正在使用Facebook SDK 3.14,无法获取用户名和生日 用户名应为public,但返回null 对于出生日期,我正在添加额外的权限,但它仍然返回null 我的代码是: public class FacebookLoginActivity extends ActionBarActivity implements Session.StatusCallback { /* ****************************** ******* CONSTANTS *****

我正在使用Facebook SDK 3.14,无法获取用户名和生日

用户名应为public,但返回null

对于出生日期,我正在添加额外的权限,但它仍然返回null

我的代码是:

public class FacebookLoginActivity extends ActionBarActivity
    implements Session.StatusCallback {

/* ******************************
 ******* CONSTANTS **************
 * **************************** */
private static final String TAG = "TAG_FacebookLoginActivity";

/**
 * additional permissions.
 * the basic permissions are granted by default
 */
private final List<String> PERMISSIONS =
        Arrays.asList("email","user_birthday","public_profile");


/* ******************************
 ******* FIELDS *****************
 * **************************** */
private UiLifecycleHelper mUiLifecycleHelper;

/* ******************************
 ******* METHODS ****************
 * **************************** */
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_facebook_login);
    mUiLifecycleHelper = new UiLifecycleHelper(this, this);
    mUiLifecycleHelper.onCreate(savedInstanceState);

    initViews();
}

@Override
protected void onResume() {
    super.onResume();
    mUiLifecycleHelper.onResume();
}

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

@Override
protected void onPause() {
    super.onPause();
    mUiLifecycleHelper.onPause();
}

@Override
protected void onDestroy() {
    super.onDestroy();
    mUiLifecycleHelper.onDestroy();
}

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    mUiLifecycleHelper.onSaveInstanceState(outState);
}

@Override
public void call(Session session, SessionState state, Exception exception) {
    onSessionStateChange(session, state, exception);

}

private void onSessionStateChange(Session session, SessionState state, Exception exception) {
    if (state.isOpened()) {
        Log.i(TAG, "Logged in...");
        getUserInformation(session);
    } else if (state.isClosed()) {
        Log.i(TAG, "Logged out...");
    }
}

private void getUserInformation(Session session) {
    Request.newMeRequest(session, new Request.GraphUserCallback() {
        @Override
        public void onCompleted(GraphUser user, Response response) {
            Log.d(TAG, "Birthday: "+user.getBirthday());
            Log.d(TAG, "UserName: "+user.getUsername());

        }
    }).executeAsync();
}

/**
 * Initialize all views
 */
private void initViews() {
    LoginButton loginButton = (LoginButton)findViewById(R.id.authButton);
    // request more permissions
    loginButton.setReadPermissions(PERMISSIONS);
}
}

谢谢

您使用的是Graph API的v1还是v2?如果您使用的是v2用户名不可用,我将使用图形API v2。是否可以以不同的方式获取用户名?不,用户名在任何地方都不可用。如果你发现这是一个错误,请告诉我,这样我们可以删除它