Опубликовать на стене Facebook с установленным официальным приложением Facebook - PullRequest
0 голосов
/ 19 февраля 2012

Пользователь моего приложения для Android должен иметь возможность публиковать сообщения на своей стене в Facebook.

Я использовал этот учебник в качестве основы для моей разработки: Ссылка на учебник

Пока все работает нормально, если я не установил официальное приложение facebook. Таким образом, код использует webview, а не SSO.

Но если я установлю приложение Facebook на том же устройстве, произойдет следующее: Нажатие кнопки «Опубликовать в Facebook» в моем приложении откроет приложение «Facebook». Но он сразу закрывается и возвращается в мое приложение.

Единственный найденный мной обходной путь - это использование Facebook.FORCE_DIALOG_AUTH:

facebook.authorize(this.activity, this.permissions,Facebook.FORCE_DIALOG_AUTH,new LoginDialogListener());

Но это позволяет избежать единого входа и всегда используется веб-просмотр. Существуют приложения для Android, которые используют официальное приложение для Facebook и выполняют единый вход. Но я искал решение все выходные, не понимая, как они это делают.

Передача хэш-ключа Android в Facebook также ничего не изменила.

1 Ответ

0 голосов
/ 19 февраля 2012

Я не уверен, почему вы пошли с этим учебником, если у Facebook есть свой собственный учебник: http://developers.facebook.com/docs/mobile/android/build/

В официальном руководстве обсуждается множество вопросов, включая его подписание, чтобы оно также работало на стадии разработки. Это также, конечно, говорит об аутентификации и SSO, вот что вам нужно для SSO:

    Facebook facebook = new Facebook("YOUR_APP_ID");

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

        facebook.authorize(this, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {}

            @Override
            public void onFacebookError(FacebookError error) {}

            @Override
            public void onError(DialogError e) {}

            @Override
            public void onCancel() {}
        });
    }

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

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

И это все. Пожалуйста, прочтите официальный учебник и следуйте его инструкциям, он должен хорошо работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...