如何从Android应用程序中的Facebook sdk获取电子邮件ID?

如何从Android应用程序中的Facebook sdk获取电子邮件ID?,第1张

概述我在我的 Android应用程序中集成了Facebook登录.我想获取登录用户的电子邮件ID.我怎么得到它? private void loginToFacebook() { Session.openActiveSession(this, true, new Session.StatusCallback() { @Override public void 我在我的 Android应用程序中集成了Facebook登录.我想获取登录用户的电子邮件ID.我怎么得到它?

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?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1121501.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存