如何使用Facebook的SDK我取姓名和电子邮件 [英] How Do I Fetch Name and Email using Facebook SDK

查看:84
本文介绍了如何使用Facebook的SDK我取姓名和电子邮件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用一个TextView显示姓名和电子邮件的登录facebook的用户,但我真的不知道我该如何获取姓名和电子邮件?

 私人无效onSessionStateChange(会话的会话,SessionState会的状态,
                                  例外的例外){
    如果(会话!= currentSession){
        返回;
    }

    如果(state.isOpened()){
        //登录就这样发生了。
        Toast.makeText(getApplicationContext(),会议开了,
                Toast.LENGTH_SHORT).show();
    }否则如果(state.isClosed()){
        //注销就这样发生了。更新UI。
        Toast.makeText(getApplicationContext(),会议结束,
                Toast.LENGTH_SHORT).show();
    }
}
 

解决方案

转寄此:详情这里

 私有类SessionStatusCallback实现Session.StatusCallback {
    私人字符串fbAccessToken;

    @覆盖
    公共无效呼叫(会话的会话,SessionState会状态,例外的例外){
        的UpdateView();
        如果(session.isOpened()){
            fbAccessToken = session.getAccessToken();
            //使请求来获取Facebook的用户信息
            Request.executeMeRequestAsync(会话,新Request.GraphUserCallback(){
                @覆盖
                公共无效onCompleted(GraphUser用户,响应响应){
                    Log.i(FB,FB用户:+ user.toString());

                    串fbId = user.getId();
                    字符串fbAccessToken = fbAccessToken;
                    串fbName = user.getName();
                    。字符串性别= user.asMap()获得(性别)的toString();
                    。字符串email = user.asMap()获得(电子邮件)的toString()。

                    Log.i(FB,userProfile.getEmail());
                }
            });
        }
    }
}
 

I am using a TextView to show Name and Email of logged in facebook user, but i really don't know How do I fetch Name and Email ?

private void onSessionStateChange(Session session, SessionState state,
                                  Exception exception) {
    if (session != currentSession) {
        return;
    }

    if (state.isOpened()) {
        // Log in just happened.
        Toast.makeText(getApplicationContext(), "session opened",
                Toast.LENGTH_SHORT).show();
    } else if (state.isClosed()) {
        // Log out just happened. Update the UI.
        Toast.makeText(getApplicationContext(), "session closed",
                Toast.LENGTH_SHORT).show();
    }
}

解决方案

Refer this: for details here

private class SessionStatusCallback implements Session.StatusCallback {
    private String fbAccessToken;

    @Override
    public void call(Session session, SessionState state, Exception exception) {
        updateView();
        if (session.isOpened()) {
            fbAccessToken = session.getAccessToken();
            // make request to get facebook user info
            Request.executeMeRequestAsync(session, new Request.GraphUserCallback() {
                @Override
                public void onCompleted(GraphUser user, Response response) {
                    Log.i("fb", "fb user: "+ user.toString());

                    String fbId = user.getId();
                    String fbAccessToken = fbAccessToken;
                    String fbName = user.getName();
                    String gender = user.asMap().get("gender").toString();
                    String email = user.asMap().get("email").toString();

                    Log.i("fb", userProfile.getEmail());
                }
            });
        }
    }
}

这篇关于如何使用Facebook的SDK我取姓名和电子邮件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆