0
처음에는 코드가 완벽하게 작동했습니다. 그런 다음 어제 나는 페이스 북 버튼을 통한 로그인 인 setReadPermissions가 이메일, 친구 목록을 무시하고 공용 프로필 만 묻는다는 것을 깨달았습니다 ....이 코드가 완벽하게 작동해야하는 또 다른 프로젝트가 있습니다. 왜 나 한테 말해?안드로이드 페이스 북의 로그인 setReadPermissions가 작동하지 않습니다
이 내 코드의 일부입니다 : 다른 프로젝트에서
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(this.getApplicationContext());
...
callbackManager = CallbackManager.Factory.create();
facebook();
...
}
private void facebook(){
facebookLoginButton = (LoginButton) findViewById(R.id.fb_login_button);
facebookLoginButton.setReadPermissions(Arrays.asList("public_profile,email,user_friends,user_birthday"));
getLoginDetails(facebookLoginButton);
}
protected void getLoginDetails(final LoginButton login_button) {
// Callback registration
login_button.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult login_result) {
final Profile profile = Profile.getCurrentProfile();
GraphRequest request = GraphRequest.newMeRequest(
login_result.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object, GraphResponse response) {
try {
System.out.println("Questo è l'object"+object);
System.out.println("Questo è il response"+response);
System.out.println("Questo è il Nome"+object.getString("name"));
System.out.println("Questo è il id"+object.getString("id"));
System.out.println("Questo è il email"+object.getString("email"));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name, birthday,picture,email");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
// code for cancellation
}
@Override
public void onError(FacebookException exception) {
// code to handle error
}
});
accessTokenTracker = new AccessTokenTracker() {
@Override
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken,AccessToken currentAccessToken) {
// Set the access token using
// currentAccessToken when it's loaded or set.
//System.out.println("Questo è accesso token "+currentAccessToken);
System.out.println("Questo è accesso OLDtoken "+oldAccessToken);
}
};
// If the access token is available already assign it.
accessToken = AccessToken.getCurrentAccessToken();
System.out.println("Questo è accesso token "+accessToken);
}
완벽하게 코드가 작동. 나는 페이스 북의 애플 리케이션 문제, 퍼미션 문제라고 생각했다. 그러나 나의 admin 계정으로도 공개 프로필 만 얻는다. 나를 도와주세요.
당신이/정리 빌드를 다시 시도해야 또한 에뮬레이터 또는 장치에서 처음 UNISTALL –
예,하지 난 모든 테스트를했는데, 작동 ... – mems
는'setPublishPermissions'는에도없는 당신이 보여준 코드. – CBroe