
private voID loginToFacebook() { Session.openActiveSession(this,true,new Session.StatusCallback() { @OverrIDe public voID call(Session session,SessionState state,Exception exception) { if (session.isOpened()) { Log.i(TAG,"Access Token" + session.getAccesstoken()); Request.executeMeRequestAsync(session,new Request.GraphUserCallback() { @OverrIDe public voID onCompleted(GraphUser user,Response response) { if (user != null) { try { userID =user.getID(); provIDer="facebook"; username=user.getUsername(); firstname=user.getFirstname(); lastname=user.getLastname(); Log.d("****User****","details:" + user); }catch(Exception e){ 这是我的代码.我使用Request.GraphUserCallback()方法,但此方法没有电子邮件的响应.
解决方法 在调用Session.openActiveSession之前,请执行此 *** 作以获取权限添加:List<String> permissions = new ArrayList<String>();permissions.add("email"); Session.openActiveSession()中的最后一个参数应该是权限.
现在您可以访问user.getProperty(“email”).toString().
编辑:
这是我正在进行Facebook授权的方式:
List<String> permissions = new ArrayList<String>();permissions.add("email");loginProgress.setVisibility(VIEw.VISIBLE);//start Facebook sessionopenActiveSession(this,new Session.StatusCallback() { @OverrIDe public voID call(Session session,Exception exception) { if (session.isOpened()) { //make request to the /me API Log.e("sessionopened","true"); Request.executeMeRequestAsync(session,new Request.GraphUserCallback() { @OverrIDe public voID onCompleted(GraphUser user,Response response) { if (user != null) { String firstname = user.getFirstname(); String lastname = user.getLastname(); String ID = user.getID(); String email = user.getProperty("email").toString(); Log.e("facebookID",ID); Log.e("firstname",firstname); Log.e("lastname",lastname); Log.e("email",email); } } }); } } },permissions); 将此方法添加到您的活动中:
private static Session openActiveSession(Activity activity,boolean allowLoginUI,Session.StatusCallback callback,List<String> permissions) { Session.OpenRequest openRequest = new Session.OpenRequest(activity).setPermissions(permissions).setCallback(callback); Session session = new Session.Builder(activity).build(); if (SessionState.CREATED_TOKEN_LOADED.equals(session.getState()) || allowLoginUI) { Session.setActiveSession(session); session.openForRead(openRequest); return session; } return null;} 总结 以上是内存溢出为你收集整理的如何从Android应用程序中的Facebook sdk获取电子邮件ID?全部内容,希望文章能够帮你解决如何从Android应用程序中的Facebook sdk获取电子邮件ID?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)