9

我搜索了过去两天,但没有成功找到从 Facebook SDK 3.0 - Native Login 获取用户 ID 和访问令牌的方法。

我正在关注 facebook 本地登录 - http://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/

我得到了访问令牌Session.getAccessToken,我得到了一些访问令牌,但那是无效的。实际程序是什么?我做错了吗?

如何UserId使用 Facebook SDK 3.0 获取本地登录

4

1 回答 1

38

用户身份:

final Session session = Session.getActiveSession();
    if (session != null && session.isOpened()) {
        // If the session is open, make an API call to get user data
        // and define a new callback to handle the response
        Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
            @Override
            public void onCompleted(GraphUser user, Response response) {
                // If the response is successful
                if (session == Session.getActiveSession()) {
                    if (user != null) {
                        user_ID = user.getId();//user id
                        profileName = user.getName();//user's profile name
                        userNameView.setText(user.getName());
                    }   
                }   
            }   
        }); 
        Request.executeBatchAsync(request);
    }  

user_ID&profileName是字符串。

对于访问令牌:

String token = session.getAccessToken();

编辑:(2014 年 13 月 1 日)

对于用户电子邮件(我没有通过在设备或模拟器上运行来检查此代码):

这些只是我的意见,或者你可以称之为建议

setReadPermissions(Arrays.asList("email", ...other permission...));
//by analyzing the links bellow, i think you can set the permission in loginbutton as:
loginButton.setReadPermissions(Arrays.asList("email", ...other permission...));
user.asMap().get("email");

欲了解更多信息,请参阅: link1link2link3link4

于 2013-02-28T05:30:58.533 回答