android - 从 Facebook 获取身份验证 token 和用户信息

标签 android facebook

我正在使用 Android 版 Facebook 登录。有用。我可以通过模拟器登录。但是,我需要将信息发送回我的 Rails Rest API。在 facebook 回调成功后,我想发回访问 token 、提供者(“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

最佳答案

使用 LoginResult.getAccessToken() 获取访问 token 后,

您需要使用收到的访问 token 调用 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

关于android - 从 Facebook 获取身份验证 token 和用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42015627/

相关文章:

javascript - 移动加速度计和陀螺仪检查功能

Facebook 对话框和后退按钮

Facebook Ads Api Request fails with #273 requires user to be admin

android - 如何在应用程序中读取计步器

android - 按下网页 View 中嵌入式YouTube fragment 中的播放按钮,启动YouTube应用

php - 被 Facebook Chat API 标记为垃圾邮件的消息

facebook - 计算 URL 的社交媒体分数

django - 如何在facebook APP页面使用开放图谱

Android 联系人选择器不返回电话号码,但姓名?

android - Android 9 (Pie) 中的 java.lang.NoClassDefFoundError