Android Facebook Graph API JSONException'没有电子邮件的价值'

时间:2015-07-28 11:42:23

标签: android facebook email jsonexception

我正在尝试使用this链接集成Facebook android sdk。一切都运行得很完美,除了我在尝试为已登录用户获取email时遇到一个JSONException。

下面是我得到的logcat,

  

07-28 16:22:37.420:W / System.err(15793):org.json.JSONException:No   电子邮件的价值07-28 16:22:37.421:W / System.err(15793):at   org.json.JSONObject.get(JSONObject.java:354)07-28 16:22:37.421:   W / System.err(15793):at   org.json.JSONObject.getString(JSONObject.java:510)07-28 16:22:37.421:   W / System.err(15793):at   in.airangle.foodapp.activities.TestActivity $ 1 $ 1.onCompleted(TestActivity.java:83)   07-28 16:22:37.421:W / System.err(15793):at   com.facebook.GraphRequest $ 1.onCompleted(GraphRequest.java:295)07-28   16:22:37.421:W / System.err(15793):at   com.facebook.GraphRequest $ 5.run(GraphRequest.java:1243)07-28   16:22:37.421:W / System.err(15793):at   android.os.Handler.handleCallback(Handler.java:615)07-28   16:22:37.421:W / System.err(15793):at   android.os.Handler.dispatchMessage(Handler.java:92)07-28   16:22:37.422:W / System.err(15793):at   android.os.Looper.loop(Looper.java:153)07-28 16:22:37.422:   W / System.err(15793):at   android.app.ActivityThread.main(ActivityThread.java:5000)07-28   16:22:37.422:W / System.err(15793):at   java.lang.reflect.Method.invokeNative(Native Method)07-28   16:22:37.422:W / System.err(15793):at   java.lang.reflect.Method.invoke(Method.java:511)07-28 16:22:37.422:   W / System.err(15793):at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:821)   07-28 16:22:37.423:W / System.err(15793):at   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:584)07-28   16:22:37.423:W / System.err(15793):at   dalvik.system.NativeStart.main(原生方法)

我的理解是,我们应该可以使用LoginManagerGraphRequest获取用户详细信息。如果有人有任何想法,请帮助我。

1 个答案:

答案 0 :(得分:7)

我得到了答案。登录成功后,我们需要根据检索GraphRequest创建accesstoken email,我们得到GraphRequest request = GraphRequest.newMeRequest(accessToken, new GraphRequest.GraphJSONObjectCallback() { @Override public void onCompleted(JSONObject object,GraphResponse response) { if (response != null) { try { String mFbid = object.getString("id"); String mFullname = object.getString("name"); String email = object.getString("email"); } catch (JSONException e) {} } } }); Bundle parameters = new Bundle(); parameters.putString("fields", "id,name,email"); request.setParameters(parameters); request.executeAndWait(); 。这是代码,

{{1}}