我目前正在开发旨在通过使用Facebook的acoount验证任何用户的应用程序。
I'm currently developing an application which aims to authenticate any user by using Facebook acoount.
我在从用户帐户获取用户的电子邮件故障。我的code低于
I have a trouble in getting user email from user's account. My code is below
private void signInWithFacebook() { SessionTracker mSessionTracker = new SessionTracker(getBaseContext(), new StatusCallback() { public void call(Session session, SessionState state, Exception exception) { } }, null, false); String applicationId = Utility.getMetadataApplicationId(getBaseContext()); Session mCurrentSession = mSessionTracker.getSession(); if (mCurrentSession == null || mCurrentSession.getState().isClosed()) { mSessionTracker.setSession(null); Session session = new Session.Builder(getBaseContext()).setApplicationId(applicationId).build(); Session.setActiveSession(session); mCurrentSession = session; } if (!mCurrentSession.isOpened()) { Session.OpenRequest openRequest = null; openRequest = new Session.OpenRequest(FacebookLoginActivity.this); if (openRequest != null) { openRequest.setDefaultAudience(SessionDefaultAudience.FRIENDS); openRequest.setPermissions(Arrays.asList("user_birthday", "email", "user_location")); openRequest.setLoginBehavior(SessionLoginBehavior.SSO_WITH_FALLBACK); mCurrentSession.openForRead(openRequest); } }else { Request.executeMeRequestAsync(mCurrentSession, new Request.GraphUserCallback() { public void onCompleted(GraphUser user, Response response) { Log.w("myConsultant", user.getId() + " " + user.getName() + " " + user.getLink() + " "+ response); } }); } }
我使用Facebook的SDK 3.0.1为Android。 我已经设置了Facebook的图形API所需的权限。 在响应XML,有没有这样的领域,如电子邮件。 Facebook的SDK单证不够好,我不知道热,以获取电子邮件地址。
I am using Facebook SDK 3.0.1 for Android. I have set the permissions required by the Facebook Graph Api. In the response xml, there is no such field like email. Facebook Sdk documentations are not good enough and I don't know hot to obtain email address.
您及时答复将大大AP preciated。
Your prompt reply will be greatly appreciated.
在此先感谢,
推荐答案电子邮件是不是所返回的默认字段。相反,你应该创建一个meRequest,并把它传递参数,如:。栏=电子邮件
Email is not a default field that's returned. Instead, you should create a meRequest, and pass it a parameter like: fields=email.
Request me = Request.newMeRequest(mCurrentSession, new GraphRequestCallback() {...}); Bundle params = me.getParameters(); params.putString("fields", "email,name"); me.setParameters(params); me.executeAsync();更多推荐
获取电子邮件地址通过使用Facebook的SDK 3.0.1为Android
发布评论