2013-07-02 41 views
2

我通過關注此link在我的應用中整合了Facebook SDK 3.0。我在收到用戶的電子郵件時遇到了一個問題。Facebook用戶的電子郵件不適用於Android的某些設備的Facebook sdk 3.0

對於某些設備,我能夠獲得電子郵件,但對於某些設備(例如Samsung Note 2,我現在知道的Samsung的Nexus Nexus)。我沒有收到電子郵件。我已經添加了獲取電子郵件的權限。

任何人都可以爲我提供一些指導,我會讚賞任何類型的幫助。我試圖通過以下方式獲取用戶信息。

 Request request = Request.newMeRequest(session, 
      new Request.GraphUserCallback() { 
     @Override 
     public void onCompleted(GraphUser user, Response response) { 
      // If the response is successful 
      if (session == Session.getActiveSession()) { 

       if (user != null) { 

        String userName = user.getName(); 
        String userEmail = user.asMap().get("email").toString(); 
        userEmail = (String)user.getProperty("email"); 
        String userId = user.getId(); 
        Session session = Session.getActiveSession(); 
        String userAccessToken = session.getAccessToken(); 

       } 
      } 
      if (response.getError() != null) { 

       // Handle errors, will do so later. 
      } 
     } 
    }); 

String NAME = "name"; 
    String ID = "id"; 
    String PICTURE = "picture"; 
    String EMAIL = "email"; 
    String FIELDS = "fields"; 
    String REQUEST_FIELDS = TextUtils.join(",", new String[] {ID, NAME, PICTURE, EMAIL}); 

    Bundle parameters = new Bundle(); 
    parameters.putString(FIELDS, REQUEST_FIELDS); 
    request.setParameters(parameters); 
    Request.executeBatchAsync(request); 

我試過這也用於獲取電子郵件,但它仍然無法正常工作。

Bundle params = request.getParameters(); 
    params.putString("fields", "email"); 
    params.putString("basic_info", "email,name"); 
    request.setParameters(params); 
    Request.executeBatchAsync(request); 

任何形式的幫助或指南都有幫助。

回答

3

最後我得到了我的問題,我和我的朋友的Facebook ID的一個檢查答案,發現他沒有進入他的Email Id在他Facebook帳戶。若我們使用許可,用於獲取電子郵件還是我們不不會因爲這個而得到它。對於獲取電子郵件,我們需要添加在link中提及的權限,或者我們可以明確地添加權限,就像我在我的問題中使用的一樣。重要的是,只有當它提及那裏。

希望這可能對某些人有幫助。

相關問題