Здравствуйте! Я использую код Android для подключения к Facebook, но получаю сообщение «Ошибка сервера Facebook + 104 - Неверная подпись» - PullRequest
0 голосов
/ 07 апреля 2010

Я использую код Android ниже для подключения к Facebook, но вместо запуска функции получаю следующее исключение onLoginSuccess:

Ошибка сервера Facebook + 104 - Неверная подпись

public class FacebookConnection extends Activity implements LoginListener {

    private FBRocket fbRocket;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // You need to put in your Facebook API key here:
        fbRocket = new FBRocket(this, "test", "e2c8deda78b007466c54f48e6359e02e");


        // Determine whether there exists a previously-saved Facebook:
        if (fbRocket.existsSavedFacebook()) {
            String str =fbRocket.getAPIKey();
            Log.e("Api key", str);
            fbRocket.loadFacebook();


         } else {
            fbRocket.login(R.layout.main);
            String str =fbRocket.getAPIKey();
            Log.e("Api key", str);
        }

    }

    public void onLoginFail() {
        fbRocket.displayToast("Login failed!");
        fbRocket.login(R.layout.main);
    }

    public void onLoginSuccess(Facebook facebook) {
        fbRocket.displayToast("Login success!******************");

        // Set the logged-in user's status:
        try {

            facebook.setStatus("I am using Facebook -- it's great!");

            String uid = facebook.getFriendUIDs().get(0); // Just get the uid of the first friend returned...
            fbRocket.displayDialog("Friend's name: " + facebook.getFriend(uid).name); // ... and retrieve this friend's name.

        } catch (ServerErrorException e) {
            // Check if the exception was caused by not being logged-in:
            if (e.notLoggedIn()) {
                // ...if it was, then login again:
                fbRocket.login(R.layout.main);
            } else {
                System.out.println(e);
                e.printStackTrace();
            }
        }
    }
}

Ответы [ 3 ]

1 голос
/ 13 апреля 2010

У меня было много проблем с использованием FBRocket, потому что документации об этом не так много.

Попробуйте изменить приложение Facebook на своем сайте Facebook как «Настольное приложение», а не как «Веб-приложение». Вам нужно перейти в «Дополнительно» -> Тип приложения

0 голосов
/ 18 октября 2018
public class FacebookConnection extends Activity implements LoginListener {

    private FBRocket fbRocket;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // You need to put in your Facebook API key here:
        fbRocket = new FBRocket(this, "test", "e2c8deda78b007466c54f48e6359e02e");


        // Determine whether there exists a previously-saved Facebook:
        if (fbRocket.existsSavedFacebook()) {
            String str =fbRocket.getAPIKey();
            Log.e("Api key", str);
            fbRocket.loadFacebook();


         } else {
            fbRocket.login(R.layout.main);
            String str =fbRocket.getAPIKey();
            Log.e("Api key", str);
        }

    }

    public void onLoginFail() {
        fbRocket.displayToast("Login failed!");
        fbRocket.login(R.layout.main);
    }

    public void onLoginSuccess(Facebook facebook) {
        fbRocket.displayToast("Login success!******************");

        // Set the logged-in user's status:
        try {

            facebook.setStatus("I am using Facebook -- it's great!");

            String uid = facebook.getFriendUIDs().get(0); // Just get the uid of the first friend returned...
            fbRocket.displayDialog("Friend's name: " + facebook.getFriend(uid).name); // ... and retrieve this friend's name.

        } catch (ServerErrorException e) {
            // Check if the exception was caused by not being logged-in:
            if (e.notLoggedIn()) {
                // ...if it was, then login again:
                fbRocket.login(R.layout.main);
            } else {
                System.out.println(e);
                e.printStackTrace();
            }
        }
    }
}
0 голосов
/ 09 мая 2010

У меня была точно такая же проблема, хотя и в другом месте. Проделав немало копаний, я обнаружил, что причиной был вызов fbRocket.loadFacebook (). Я не могу заставить этот метод работать, даже если я делаю facebook.save (), чтобы сохранить сеанс на диск после ручного входа в систему. Все, что я могу думать, это то, что fbRocket.loadFacebook () не работает должным образом, и вы всегда должны использовать fbRocket.login (). Это то, что я должен сделать в моем приложении. Я также не смог заставить его работать с примером кода на веб-сайте FBRocket. Надеюсь, это поможет.

Чак

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