Пробую сделать авторизацию с помощью Facebook + получить список друзей, которые используют приложение.
По началу всё было ок, никаких багов не наблюдалось, код отлично отрабатывал, список друзей получал.
Но спустя день приложение отвалилось, причём код приложения не менялся.
Сейчас авторизация приложения проходит успешно, возвращается корректный Token (проверяю через Graph API Exporer - запросы к Graph API отрабатывает корректно).
Но при выводе AccessToken.getCurrentAccessToken() - вижу следующее:
AccessToken token:ACCESS_TOKEN_REMOVED permissions:[user_friends, contact_email, email, public_profile]
Из-за этого невозможно выполнить код на получение списка друзей:
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/me/friends",
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
System.out.println( "COMPLETE" );
}
}
).executeAsync();
Он просто не отрабатывает и не выводятся никакие ошибки.
Никак не пойму что он хочет.
Что пробовал:
* Перепроверил все настройки приложения в FB
* проверил правильность генерации и установки KeyHash
* проверил настройки develop аккаунта (прописал KeyHash там)
Подскажите пожалуйста как можно исправить?
Сам код авторизации:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if ( ! FacebookSdk.isInitialized())
{
FacebookSdk.sdkInitialize(getApplicationContext());
}
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList( "public_profile", "user_friends", "email" ));
callbackManager = CallbackManager.Factory.create();
LoginManager.getInstance().registerCallback( callbackManager, new FacebookCallback() {
@Override
public void onSuccess(LoginResult loginResult)
{
if ( loginResult.getAccessToken() != null )
{
accessToken = loginResult.getAccessToken();
finish();
}
}
@Override
public void onCancel() {
System.out.println("Facebook: cancel");
}
@Override
public void onError(FacebookException e) {
System.out.println("Facebook: error");
}
});
setContentView(R.layout.activity_login);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}