android - 获取 Facebook 登录用户的 JSONObject 值

标签 android json facebook-graph-api

我只是想获取已登录 Facebook 用户的 ID、姓名和个人资料图片 URL。

我有这个:

 GraphRequest request = GraphRequest.newMeRequest(
   loginResult.getAccessToken(),
   new GraphRequest.GraphJSONObjectCallback() {
               @Override
                 public void onCompleted(
                   JSONObject object,
              GraphResponse response) {
              // Application code
               response.getError();
      Log.e("JSON:", object.toString());

try {
  user_id =object.getJSONObject("").getString("id");
  name =object.getJSONObject("").getString("name");
  profilepic_url =object.getJSONObject("").getString("link");
   } catch (JSONException e) {
      e.printStackTrace();
  }

 });
         Bundle parameters = new Bundle();
         parameters.putString("fields", "id,name,link");
          request.setParameters(parameters);
        //Log.e(" About to Graph Call", " ");
        request.executeAsync();
         //Log.e(" Finished Graph Call", " ");
}

然而,所有的字符串都是空的。嗯……这是我记录 JSONObject 后的输出……

05-26 20:28:41.426    8248-8248/com.ro.hitup1_0 E/JSON:﹕ 

{

"id":"10202628284866677",

"name":"Rohit Tigga",

"link":"https:\/\/www.facebook.com\/app_scoped_user_id\/10202628284866677\/"

}

我不确定到底是什么问题。 jsonobject 没有名称。所以根据这个:

JSONObject - How to get a value ?

How to Parse a JSON Object In Android

我正在做的事情不应该起作用吗?我做错了什么以及如何解决?

最佳答案

您已经从 onCompleted 方法中获取了 JSONObject。所以只需从“JSONObject 对象”中获取所有值。

用这段代码代替你的代码。

GraphRequest request = GraphRequest.newMeRequest(
                        loginResult.getAccessToken(),
                        new GraphRequest.GraphJSONObjectCallback() {
                            @Override
                            public void onCompleted(
                                    JSONObject object,
                                    GraphResponse response) {
                                // Application code
                                response.getError();
                                Log.e("JSON:", object.toString());

                                try {
                                     user_id = object.getString("id");
                                     name = object.getString("name");
                                     profilepic_url = object.getString("link");
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        });
                Bundle parameters = new Bundle();
                parameters.putString("fields", "id,name,link");
                request.setParameters(parameters);
                //Log.e(" About to Graph Call", " ");
                request.executeAsync();
                //Log.e(" Finished Graph Call", " ");
        }

关于android - 获取 Facebook 登录用户的 JSONObject 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30472814/

相关文章:

android - 仅在安装了支持的 Android 应用程序时才将 HTML 重定向到自定义协议(protocol)

java - 在 Android 中发布到 Twitter

asp.net - Facebook SDK - 通过 ID 访问公共(public)相册,无需身份验证

facebook - 如何获得Facebook分享,评论,例如youtube视频计数?

ruby-on-rails - Ruby on Rails JSON 序列化

Facebook 应用程序 : How to get interest-lists posts/feed?

安卓文字大小

android - 将 Zxing 条码扫描器与我的 Android 应用程序集成 - 自定义操作名称问题

json - 如何在Spark上将JSON字符串转换为数据帧

java - JSON:反序列化子类型