Проблемы с SSO Facebook на Android

#android #facebook #facebook-graph-api

#Android #Facebook #facebook-graph-api

Вопрос:

Я пытаюсь создать приложение для Android с использованием SSO facebook, поэтому сначала я создал тестовое приложение для тестирования их api.

Я следил за руководством по запуску Android здесь, на сайте разработчиков facebook. Все работало хорошо. Когда приложение запустилось, оно позволило мне войти в facebook, используя традиционный логин webview (поскольку facebook не был установлен на эмуляторе). Затем я заметил, что если у вас уже установлен facebook, то для входа в систему будет использоваться более необычный экран.

Итак, я установил facebook, открыл приложение, все прошло хорошо. Закрыл и снова открыл приложение, и появился экран повторной авторизации facebook, но на этот раз без информации об этом..

введите описание изображения здесь

Что немного странно … поэтому, когда я нажимаю «Ок», это отображается..

введите описание изображения здесь

поэтому, если я снова нажму «ок», он просто откроет facebook в браузере. Если это как-то связано с моим кодом? Или что-то на стороне Facebook? У меня такая же проблема как на эмуляторе, так и на реальном устройстве. На эмуляторе работало приложение для разработчиков facebooks, которое поставлялось с sdk, а на устройстве установлено последнее приложение facebook из Android Market.

Код здесь..

 public class Home extends Activity {

Facebook facebook = new Facebook("Blanked the ID :)");
String FILENAME = "app_data";
private SharedPreferences mPrefs;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mPrefs = getPreferences(MODE_PRIVATE);
    String access_token = mPrefs.getString("access_token", null);
    long expires = mPrefs.getLong("access_expires", 0);
    if (access_token != null) facebook.setAccessToken(access_token);
    if (expires != 0) facebook.setAccessExpires(expires);

    if (!facebook.isSessionValid()) {
        facebook.authorize(this, new DialogListener() {

            @Override
            public void onComplete(Bundle values) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onFacebookError(FacebookError e) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onError(DialogError e) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onCancel() {
                // TODO Auto-generated method stub
            }
        });
    }
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    facebook.authorizeCallback(requestCode, resultCode, data);
}
  

Заранее спасибо за любую помощь! (:

Ответ №1:

Попробуйте отключить диалоговое окно расширенной авторизации здесь после выбора приложения

Настройки приложения -> Дополнительные настройки -> Расширенный диалог авторизации: отключен

Приветствия.