我正在尝试使用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(原生方法)
我的理解是,我们应该可以使用LoginManager
和GraphRequest
获取用户详细信息。如果有人有任何想法,请帮助我。
答案 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}}