如何在Android应用程序中获取Facebook用户名

时间:2014-02-13 05:44:23

标签: android facebook facebook-graph-api

我在我的应用程序中添加了Facebook登录功能。它已成功连接并从应用程序注销。

我想在我的应用程序中打印该登录用户名。

任何人都可以帮我找到这个吗?

我使用This作为示例

这是我的代码。

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"}, 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();

                        }

                        @Override
                        public void onCancel() {
                            // TODO Auto-generated method stub
                            Toast.makeText(getApplicationContext(), "onCancel", Toast.LENGTH_LONG).show();
                        }
                    });

                }

            }
        });

2 个答案:

答案 0 :(得分:1)

您需要参考此链接facebook sdk 并从用户对象获取信息。

Bundle params = new Bundle();
        params.putString("fields", "name,first_name,last_name");
        friendsRequest.setParameters(params);

        // Get current logged in user information
        Request meRequest = Request.newMeRequest(session, new Request.GraphUserCallback() {

            @Override
            public void onCompleted(GraphUser user, Response response) {
                FacebookRequestError error = response.getError();
                if (error != null) {
                    Log.e(FriendSmashApplication.TAG, error.toString());
                    handleError(error, true);
                } else if (session == Session.getActiveSession()) {
                    // Set the currentFBUser attribute
                    ((FriendSmashApplication)getApplication()).setCurrentFBUser(user);
                }
            }
        });

或者你可以尝试这个例子。

http://www.androiddevelopersolution.com/2012/09/android-facebook-integration.html

答案 1 :(得分:0)

我会关注this Facebook doc,了解如何在用户登录您的应用程序后获取用户的数据。