2017-04-11 68 views
0
分享它的選項後,電子郵件ID是不是通過圖形API訪問

我的代碼如下所示:爲什麼即使能夠在輪廓

facebookButton.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       LoginManager.getInstance().logInWithReadPermissions(LogInActivity.this, 
         Arrays.asList("public_profile", "email")); 

       LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
        @Override 
        public void onSuccess(LoginResult loginResult) { 
         //set login status 
         SessionManager.get(LogInActivity.this).setLoginStatus(true); 
         graphRequest(loginResult); 
        } 

        @Override 
        public void onCancel() { 
         // not called 
         Toast.makeText(getApplicationContext(), "fail", Toast.LENGTH_SHORT).show(); 
        } 

        @Override 
        public void onError(FacebookException e) { 
         // not called 
         Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_SHORT).show(); 
        } 
       }); 
      } 
     }); 

private void graphRequest(LoginResult loginResult) { 
     showProgressDialog(); 
     GraphRequest request = GraphRequest.newMeRequest(
       loginResult.getAccessToken(), 
       new GraphRequest.GraphJSONObjectCallback() { 
        @Override 
        public void onCompleted(JSONObject object, GraphResponse response) { 


         try { 
          if (object.has("email")) { 
           //store session manager 
           email = object.getString("email"); 
           SessionManager.get(LogInActivity.this).setEmailId(email); 
          } 
          if (object.has("id")) { 
           faceBookId = object.getString("id"); 
           picUrl = "https://graph.facebook.com/" + faceBookId 
             + "/picture?type=large"; 
           //store session manager 
           SessionManager.get(LogInActivity.this).setProfilePic(picUrl); 
//        downLoadImage(url); 

          } 
          if (object.has("name")) { 
           //store session manager 
           name = object.getString("name"); 
           SessionManager.get(LogInActivity.this).setPersonName(name); 
          } 
          downLoadImage(picUrl, name, email, "0"); 
//       Toast.makeText(getApplicationContext(), email, Toast.LENGTH_LONG).show(); 
         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 

        } 
       }); 


     Bundle parameters = new Bundle(); 
     parameters.putString("fields", "id,name,email,picture.type(small)"); 
     request.setParameters(parameters); 
     request.executeAsync(); 


    } 

這裏的問題是,我沒能獲得電子郵件ID甚至啓用後允許朋友將我的電子郵件地址包含在我的Facebook個人資料中的下載您的信息選項中,是否有任何其他方式獲取電子郵件ID?

回答

0

試一試

String email = ""; 
try { 
     email = URLDecoder.decode(object.optString("email") 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    }