2017-02-03 1 views
1

Android 용 Facebook 로그인을 사용하고 있습니다. 그것은 작동합니다. 에뮬레이터를 통해 로그인 할 수 있습니다. 그러나 Rails Rest API에 정보를 다시 보내야합니다. 페이 스북 콜백 성공시, 액세스 토큰, 제공자 ("페이스 북"), uid, 페이스 북 사용자 이름, 페이스 북 사용자 이메일 및 페이 스북 이미지 아이콘을 다시 보내고 싶습니다.페이스 북에서 인증 토큰 및 사용자 정보 얻기

I/AUTHENTICATION TOKEN: {AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile, contact_email, email]} 

어떻게 내가 onSuccess를 필요로하는 정보를 얻을 수 있습니까 :

loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
    @Override 
    public void onSuccess(LoginResult loginResult) { 
    Log.i("AUTHENTICATION TOKEN", String.valueOf(loginResult.getAccessToken())); 
    } 

로그 캣은이 다음이다? 당신이 LoginResult.getAccessToken() 사용하여 얻은 액세스 토큰이 있으면

+1

here을 볼 수 있습니다 사용자가 사용할 수있는 필드의 목록에 필요한 모든 권한을 부여 제공이 포함됩니다 _ "액세스 토큰, 공급자 ("facebook "), uid, Facebook 사용자 이름, Facebook 사용자 이메일 및 Facebook 이미지 아이콘을 보내려합니다."- 아니,하지 마세요. 누구든지 가짜 ID, 이름 및 이메일로 API에 요청을 보낼 수 있습니다. 액세스 토큰 만 전송하십시오 (다른 유형의 토큰과 구별해야하는 경우 'facebook'도 함께 보내십시오). 그런 다음 해당 토큰을 사용하여 나머지 사용자 세부 정보를 얻으려면 서버 측 API 요청을하십시오. – CBroe

+0

@CBroe 좋은 지적, 고려해 볼께 – Donato

답변

1

을 시도합니다. SDK Docs에서

GraphRequest request = GraphRequest.newMeRequest(
     accessToken, 
     new GraphRequest.GraphJSONObjectCallback() { 
      @Override 
      public void onCompleted(
        JSONObject object, 
        GraphResponse response) { 
       // Application code 
      } 
     }); 
Bundle parameters = new Bundle(); 
parameters.putString("fields", "id,name,email"); 
request.setParameters(parameters); 
request.executeAsync() 

된 JSONObject object 필요한 사용자 정보를 사용자가 응용 프로그램

+0

이 코드는 ID와 이름만을 제공합니다. 그러나 uid, 이메일 및 페이스 북 아이콘은 어디에 있습니까? 결과 집합에 없습니다. – Donato

+0

UID를 얻으려면 어떻게해야합니까? 그것이 가장 중요한 부분입니다. – Donato

+0

id 필드는 사용자의 고유 ID이며 앱에만 적용됩니다. 사용 가능한 필드 목록에 대한 답변의 마지막 줄에 게시 한 링크를 확인하십시오. – akash93

0

당신이받은 액세스 토큰을 사용하여 페이스 북 그래프 API를 호출 할 필요가,이

Log.i("AUTHENTICATION TOKEN", AccessToken.getCurrentAccessToken().getToken()); 
관련 문제