#android #facebook-login
#Android #facebook-вход
Вопрос:
я пытаюсь реализовать facebook login в своем приложении, ответ graph равен нулю, и я не могу получить какую-либо информацию о пользователе, вот мой код
public class LoginActivity extends AppCompatActivity {
CallbackManager callbackManager;
LoginButton login;
private String text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_page);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
login = (LoginButton)findViewById(R.id.login_button);
login.setReadPermissions("public_profile email");
login.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
if(AccessToken.getCurrentAccessToken() != null){
RequestData();
}
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
}
});
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException exception) {
}
});
}
public void RequestData(){
GraphRequest request = GraphRequest.newMeRequest(AccessToken.getCurrentAccessToken()
, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject object,GraphResponse response) {
JSONObject json = response.getJSONObject();
try {
if(json != null){
text = json.getString("id");
Context context=getApplicationContext();
Toast.makeText(context,text,Toast.LENGTH_LONG).show();
}
else{
Toast.makeText(context,"empty",Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link,email,picture");
request.setParameters(parameters);
request.executeAsync();
Context context=getApplicationContext();
Toast.makeText(context,text,Toast.LENGTH_LONG).show();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
}
всплывающее сообщение всегда пустое, и информация не возвращается, я застрял в этом
Ответ №1:
я изменил вызов register с кнопки на Login Manager, и это сработало