#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:
Попробуйте отключить диалоговое окно расширенной авторизации здесь после выбора приложения
Настройки приложения -> Дополнительные настройки -> Расширенный диалог авторизации: отключен
Приветствия.