开发者

Hello I am using the android code to connect facebook but getting "Facebook Server Error + 104 - Incorrect signature"

I am using the Android code below to connect to Facebook but getting the following exception instead of running the function onLoginSuccess:

Facebook Server Error + 104 - Incorrect signature

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: " + facebo开发者_运维百科ok.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();
            }
        }
    }
}


I've had many problems using FBRocket because of there's not many documentation about it.

Try editing your Facebook app in your Facebook Site as a "Desktop App" not as a "Web app". You have to go to "Advanced" -> Application type


I had the exact same problem, though at a different place. After doing a fair amount of digging, I found that the call to fbRocket.loadFacebook() was the culprit. I can't get that method to work, even if I do a facebook.save() to save the session to disk after a manual login. All I can think is that fbRocket.loadFacebook() does not work properly and you should always use fbRocket.login(). That is what I have to do in my app. I also couldn't get it to work with the sample code on the FBRocket website. Hope that helps.

Chuck


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜