2016-10-14 5 views
-1

내가 FB 로그인이 사용하고 페이스 북 SDK가 없습니다안드로이드 : 이메일 ID 얻을

LoginManager.getInstance().logInWithReadPermissions(FindFriendActivity.this, Arrays.asList("public_profile", "user_friends", "email")); 

FacebookSdk.sdkInitialize(this.getApplicationContext()); 
     callbackManager = CallbackManager.Factory.create(); 
     LoginManager.getInstance().registerCallback(callbackManager, new FacebookCallback<LoginResult>() 
       { 
        @Override 
        public void onSuccess(LoginResult loginResult) 
        { 
         Log.d("Success", "Login"); 
         GraphRequest graphRequestAsyncTask = new GraphRequest(
           loginResult.getAccessToken(), "/me/friends", null, HttpMethod.GET, new GraphRequest.Callback() 
         { 
          public void onCompleted(GraphResponse response) 
          { 
           JSONArray rawName = response.getJSONObject().getJSONArray("data"); 
          } 
         } 
         ); 
         Bundle parameters = new Bundle(); 
         parameters.putString("fields", "id,name,picture,email"); 
         graphRequestAsyncTask.setParameters(parameters); 
         graphRequestAsyncTask.executeAsync(); 
        } 

        @Override 
        public void onCancel() 
        { 
         Utilities.ShowToast(mContext, "Facebook Login cancel"); 
        } 

        @Override 
        public void onError(FacebookException exception) 
        { 
         Utilities.ShowToast(mContext, exception.getMessage()); 
        } 
       } 
     ); 


@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    { 
     super.onActivityResult(requestCode, resultCode, data); 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 

매니페스트 :

<meta-data 
      android:name="com.facebook.sdk.ApplicationId" 
      android:value="@string/facebook_app_id"/> 

<uses-permission android:name="android.permission.INTERNET"/> 

응답 :

{Response: responseCode: 200, graphObject: {"data":[{"id":"10210065337685894","name":"abc","picture":{"data":{"is_silhouette":false,"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xlp1\/v\/t1.0-1\/p50x50\/13501928_10209152837153951_2277267834804945940_n.jpg?oh=1fdb4269d216309e39afe4fc9460011f&oe"}}},{"id":"1249098285123628","name":"xyz","picture":{"data":{"is_silhouette":false,"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xfp1\/v\/t1.0-1\/p50x50\/13501829_1199623916737732_4120441565269954276_n.jpg?oh=d030d56a261964d37ffe287887122fba&oe=58ACFF22&__gda__=1486855096_"}}},{"id":"901840776615466","name":"pqr","picture":{"data":{"is_silhouette":false,"url":"https:\/\/fbcdn-profile-a.akamaihd.net\/hprofile-ak-xaf1\/v\/t1.0-1\/c0.0.50.50\/p50x50\/48142_460427077423507_21768463_n.jpg?oh=3801d55da3bca5a30546e627f3f068f9&oe"}}}],"paging":{"cursors":{"before":"QVFIUkdhcmpmOXdFVVRDSlppQjMxR0FEc2NTNW82bnQzaUZAFUmhmRUtqX0JaV25vV1pvalFoVm11clpvQm9tOXFsRkEZD","after":"QVFIUnZAsN0RReThOMkEyaUZAYQUJuVFRma0JiMU4wQXVGaTNTd2xORjlFdmpUR0FSOEtPbEw1WjMtRWhOMF82czZAWWVNWMktYMlV6Tzk4ZAGEwOUdNRllveGdB"}},"summary":{"total_count":6}}, error: null} 
+0

가능한 복제 [I가 페이스 북의 친구 목록의 이메일 주소를 얻을 수있는 방법은?] (http://stackoverflow.com/questions/8797874/how-can-i-get-facebook-friends- list-email-addresses) – Beloo

+0

그래서 남은 유일한 문제는 친구들이 앱에'이메일 '권한을 부여하지 않았다는 것입니다. 이걸 확인해 봤어? 모든 친구의 이메일을 가져올 수 없습니다. – Beloo

답변

1

당신은 이메일을 요청하는 경우 허가가 없다면 이메일 주소를 얻을 수 있습니다. 예를 들어 누군가 이메일 주소 대신 전화 번호로 Facebook에 가입 한 경우 이메일 필드가 비어있을 수 있습니다.

자세히보기 here

+0

그런 경우 이메일 주소는 비어 있어야합니다. 그리고 내 친구들에게는 아직도 응답이없는 이메일 주소가 있습니다. –

+0

@Apurvak 또한 친구들이 공개 속성 (페이스 북 설정을 통해)으로 이메일을 설정해야하며, 여전히 이메일에 액세스 할 수 없도록해야합니다. – Beloo

+0

@Beloo 고맙지 만, 이메일을 공개적으로 변경 한 후에도 응답하지 않습니다. –

관련 문제