如何在android中获取facebook first_name,second_name?

时间:2014-02-15 16:34:01

标签: facebook facebook-graph-api

我试图将facebook凭据提供给我的应用程序。我想打印用户名,第二个名字。

我使用了这段代码。

fbLogin.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        if(fb.isSessionValid()){
            try {
                fb.logout(getApplicationContext());

                updateButtonImage();
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }else{

            fb.authorize(MainActivity.this, new String[]{"email","first_name","second_name"}, new DialogListener() {

                @Override
                public void onFacebookError(FacebookError e) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this, "fbError", Toast.LENGTH_LONG).show();
                }
                @Override
                public void onError(DialogError e) {
                    // TODO Auto-generated method stub

                }
                @Override
                public void onComplete(Bundle values) {
                    // TODO Auto-generated method stub
                    updateButtonImage();
                    //session.createLoginSession("RandB", emailtext);
                    Intent i = new Intent(MainActivity.this, TestTab.class);
                    startActivity(i);
                    finish();
                }
                @Override
                public void onCancel() {
                    // TODO Auto-generated method stub
                    Toast.makeText(getApplicationContext(), "onCancel", Toast.LENGTH_LONG).show();
                }
            });
        }}
});

有谁能告诉我如何在新String中打印这个first_name和second_name?(new String[]{"email","first_name","second_name"})

被修改 我可以从这个Bundle values的不完整方法中获取数据吗?

2 个答案:

答案 0 :(得分:0)

Here如果您想打印middle_name只执行user.GetProperty("middle_name")功能,您可以看到如何获取用户的数据以及如何打印它。

答案 1 :(得分:0)

我找到了答案。

@Override
        public void onComplete(Bundle values) {
            // TODO Auto-generated method stub
            try {
                JSONObject json = Util.parseJson(fb.request("me"));
                String firstName = json.getString("first_name");
                String lastName = json.getString("last_name");

                full_name = firstName + " " + lastName;
                Log.d("Name", firstName + " "+ lastName);

            } catch (Exception error) {
                Toast.makeText(MainActivity.this,error.toString(),Toast.LENGTH_SHORT).show();

            }

通过将此代码添加到onComplete方法,我们可以打印用户的名字和姓氏。