나는이 질문에 답을 얻었으나 한 가지 대답이 거의 없거나 대답조차되지 않는다는 것을 알고 있습니다.Facebook API가 이메일을 반환하지 않습니다.
이해가 부족하거나 Facebook 문서가 부족한 지 알 수 없지만, 지금까지는이 코드를 통해 사용자 이메일을 검색했습니다.
callbackManager = CallbackManager.Factory.create();
mFbLoginManager.registerCallback(
callbackManager,
new FacebookCallback <LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
// Handle success
Log.i(TAG, "callBack Login Result: LoginManager success - " + loginResult.toString());
GraphRequest.newMeRequest(loginResult.getAccessToken(), new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject userObject, GraphResponse response) {
if (response.getError() == null) {
try {
AccessToken token = AccessToken.getCurrentAccessToken();
Log.e(TAG, token.getToken());
Log.e(TAG, userObject.toString());
email = userObject.getString("email");
} catch (JSONException ex) {
Log.e(TAG, "Not such permissions for email!");
ex.printStackTrace();
}
Log.d(TAG, "Email fetched: " + email);
}else{
Log.e(TAG, "Something went wrong with fetching email with GraphRequest");
}
}
}).executeAsync();
}
JSON 문자열은 이름과 ID 만 반환하므로 내 이메일 변수가 비어 있습니다.
제가 골치를 앓고있는 부분은 그래프 탐색기에서 테스트 할 때 또는 link으로 테스트 할 때 이메일을받는 것입니다.
나는 또한 자체 권한 개발자 사이트 대시 보드도 내 코드가 (즉, 온 클릭() 안에 때 사용자를 눌러 페이스 북의 로그인 버튼) : mFbLoginManager.logInWithReadPermissions(LoginActivity.this, Arrays.asList("user_photos", "email", "public_profile")
그래서 내가 문제가있는 것을 확실하지 않다 내 암호. 로그인 버튼은 페이스 북 LoginButton이 아닌 사용자 정의이며, 중요하다면 잘 모릅니다.
모든 도움을 환영
체크 인이 밖으로 http://stackoverflow.com/a/32776987/2556660 [페이스 북 JS SDK의 FB.api ('나 /') 메소드의 – RameshJaga
가능한 중복은 '아무튼 t 그래프 API에서 기대하는 필드를 반환합니다 v2.4 +] (http://stackoverflow.com/questions/32584850/facebook-js-sdks-fb-api-me-method-doesnt-return-the-fields-i -expect-in-gra) - 원하는 필드에 대해 _ask_ 무시했는데 API v2.4 이후로 필요합니다. – CBroe