从Facebook

时间:2017-02-03 02:11:12

标签: android facebook

我正在使用Facebook登录Android。有用。我可以通过模拟器登录。但是,我需要将信息发送回我的Rails Rest API。在facebook回调成功后,我想发回访问令牌,提供商(“facebook”),uid,facebook用户名,facebook用户邮箱和facebook图标图标。

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
  @Override
  public void onSuccess(LoginResult loginResult) {
    Log.i("AUTHENTICATION TOKEN", String.valueOf(loginResult.getAccessToken()));
  }  

Logcat显示以下内容:

I/AUTHENTICATION TOKEN: {AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, contact_email, email]}

如何获取所需信息onSuccess

2 个答案:

答案 0 :(得分:1)

使用LoginResult.getAccessToken()

获得访问令牌后

您需要使用收到的访问令牌调用Facebook Graph api。来自SDK Docs

GraphRequest request = GraphRequest.newMeRequest(
        accessToken,
        new GraphRequest.GraphJSONObjectCallback() {
            @Override
            public void onCompleted(
                   JSONObject object,
                   GraphResponse response) {
                // Application code
            }
        });
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,email");
request.setParameters(parameters);
request.executeAsync()

如果用户已向您的应用程序授予了所有必要的权限,则JSONObject object将包含所需的用户信息

可以看到可供用户使用的字段列表here

答案 1 :(得分:0)

试试这个

Log.i("AUTHENTICATION TOKEN", AccessToken.getCurrentAccessToken().getToken());