如何获得电子邮件ID从Android的Facebook的SDK 4.6.0? [英] How to get email id From Android Facebook SDK 4.6.0?

查看:147
本文介绍了如何获得电子邮件ID从Android的Facebook的SDK 4.6.0?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的code为Facebook登录后获取用户信息。 我试图从用户获得EMAILID我越来越姓名,身份证,但没有得到EMAILID。我曾尝试与登录按钮和登录管理器类既赋予了相同的结果。 现在,如何从响应收到电子邮件ID:

  loginButton.registerCallback(callbackManager,新FacebookCallback< LoginResult>(){
                @覆盖
                公共无效的onSuccess(最终LoginResult loginResult){
                    新GraphRequest(AccessToken.getCurrentAccessToken()
                            /我,空,HttpMethod.GET,
                            新GraphRequest.Callback(){
                                公共无效onCompleted(
                                        GraphResponse响应){
                                         处理结果

                                    如果(响应!= NULL)
                                    {
                                        //获取用户信息
                                        Toast.makeText(getApplicationContext(),你好以JSON,Toast.LENGTH_LONG).show();
                                        JSONObject的JSON = response.getJSONObject();
                                        // JSONArray jsona = response.getJSONArray();
                                        Log.i(TAG,+ JSON);
                                       // Log.i(TAG,+ JSON);
                                        字符串email = json.optString(电子邮件);
                                       //字符串email = json.optString(电子邮件);
                                        //Log.i("email,+电子邮件);
                                        Log.i(TAG,+电子邮件);
                                        字符串全名= json.optString(姓名);
                                        字符串位置= json.optString(位置);
                                        字符串accessToken = loginResult.getAccessToken()为gettoken()。
                                        字符串USER_ID = json.optString(ID);
                                        Log.i(TAG,+ JSON);
                                        Toast.makeText(getApplicationContext(),全名,Toast.LENGTH_LONG).show();
                                        Toast.makeText(getApplicationContext(),电子邮件,Toast.LENGTH_LONG).show();
                                        Toast.makeText(getApplicationContext(),USER_ID,Toast.LENGTH_LONG).show();
                                        // int型的= 1;
                                       //串lastUpdate = json.getString(updated_time);

                                      // Log.i(电子邮件,+电子邮件);
                                      // Log.i(消息,HELLO);
                                        Log.i(姓名,+全名);
                                        Log.i(ID,+的user_id);


                                    }
                                }

                            })executeAsync()。
 

谢谢.. !!

解决方案

  LoginManager.getInstance()。logInWithReadPermissions(WelcomeActivity1.this,(Arrays.asList(public_profile,user_friends user_birthday,user_about_me,电子邮件)));

字符串的电子邮件;


。LoginManager.getInstance()registerCallback(callbackManager,新FacebookCallback< LoginResult>(){
 @覆盖
  公共无效的onSuccess(LoginResult loginResult){
  Log.d(标签,FF FB的onSuccess);
  GraphRequest请求= GraphRequest.newMeRequest(loginResult.getAccessToken(),新GraphRequest.GraphJSONObjectCallback(){
    @覆盖
    公共无效onCompleted(的JSONObject对象,GraphResponse响应){
     尝试 {
           的String [] splited;
           JSONObject的OBJ = object.getJSONObject(图片)getJSONObject(数据)。

                              如果(object.has(电子邮件))
                              {
                                 电子邮件= object.getString(电子邮件);
                              }
                              其他
                              {
                                  电子邮件=;
                              }



                            }赶上(JSONException E){
                                // TODO自动生成的catch块
                                e.printStackTrace();
                            }


                            }
                        });
                捆绑参数=新包();
                parameters.putString(域,ID,姓名,联系,生日,图片,电子邮件,性别);
                request.setParameters(参数);
                request.executeAsync();


            }

            @覆盖
            公共无效OnCancel的(){
                Log.d(标签,FB OnCancel的」);
                 //应用code
            }



@覆盖
            公共无效onerror的(FacebookException除外){
                Log.d(标签,FB的onError);
                 //应用code
            }
});
 

Here is my code for getting user information after facebook login. I am trying to get emailid from user I am getting Name , id , but not getting the emailid .I have tried with the Login Button and Login Manager class both giving the same results . Now how to get email id from response :

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
                @Override
                public void onSuccess(final LoginResult loginResult) {
                    new GraphRequest(AccessToken.getCurrentAccessToken(),
                            "/me", null , HttpMethod.GET,
                            new GraphRequest.Callback() {
                                public void onCompleted(
                                        GraphResponse response) {
                                         handle the result 

                                    if (response !=null  )
                                    {
                                        //GET USER INFORMATION
                                        Toast.makeText(getApplicationContext(),"Hello in JSON",Toast.LENGTH_LONG).show();
                                        JSONObject json = response.getJSONObject();
                                        //JSONArray jsona = response.getJSONArray();
                                        Log.i(TAG,"" +json);
                                       // Log.i(TAG,"" +json);
                                        String email = json.optString("email");
                                       // String email = json.optString("email");
                                        //Log.i("email", "" + email);
                                        Log.i(TAG,"" +email);
                                        String fullName = json.optString("name");
                                        String location = json.optString("location");
                                        String accessToken = loginResult.getAccessToken().getToken();
                                        String user_id = json.optString("id");
                                        Log.i(TAG,"" +json);
                                        Toast.makeText(getApplicationContext(),fullName,Toast.LENGTH_LONG).show();
                                        Toast.makeText(getApplicationContext(),email,Toast.LENGTH_LONG).show();
                                        Toast.makeText(getApplicationContext(),user_id,Toast.LENGTH_LONG).show();
                                        //int type = 1;
                                       // String lastUpdate = json.getString("updated_time");

                                      //  Log.i("email", "" + email);
                                      //  Log.i("Message", "HELLO");
                                        Log.i("Name", "" + fullName);
                                        Log.i("ID", "" + user_id);


                                    }
                                }

                            }).executeAsync();

Thanks..!!

解决方案

LoginManager.getInstance().logInWithReadPermissions(WelcomeActivity1.this, (Arrays.asList("public_profile", "user_friends","user_birthday","user_about_me","email")));

String email;


LoginManager.getInstance().registerCallback(callbackManager,new FacebookCallback<LoginResult>() {
 @Override
  public void onSuccess(LoginResult loginResult) {
  Log.d("tag","FF fb onSuccess");
  GraphRequest request = GraphRequest.newMeRequest(loginResult.getAccessToken(),new GraphRequest.GraphJSONObjectCallback() {
    @Override
    public void onCompleted(JSONObject object,GraphResponse response) {
     try {
           String[] splited ;
           JSONObject obj =  object.getJSONObject("picture").getJSONObject("data");

                              if (object.has("email"))
                              {
                                 email =  object.getString("email");
                              }
                              else
                              {
                                  email = "";
                              }



                            } catch (JSONException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }


                            }
                        });
                Bundle parameters = new Bundle();
                parameters.putString("fields", "id,name,link,birthday,picture,email,gender");
                request.setParameters(parameters);
                request.executeAsync();


            }

            @Override
            public void onCancel() {
                Log.d("tag","fb onCancel");
                 // App code
            }



@Override
            public void onError(FacebookException exception) {
                Log.d("tag","fb onError");
                 // App code   
            }
});

这篇关于如何获得电子邮件ID从Android的Facebook的SDK 4.6.0?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆