Przejdź do strony aplikacji Facebook po uwierzytelnieniu za pomocą logowania pojedynczego

Pracuję nad aplikacją, w której muszę zintegrować funkcjonalność społecznościową Facebooka.

Chcę użyć funkcji SSO (Single Sign On), a gdy użytkownik naciśnie przycisk w mojej aplikacji, otworzy się przeglądarka internetowa i pokaże mu moją stronę aplikacji na Facebooku, po uwierzytelnieniu użytkownika, a teraz może zrobić to z innych rzeczy jako uwierzytelniony użytkownik.

Pobrałem SDK Facebooka i uwzględniłem go w moim projekcie, podpisałem też aplikację na stronie programistów Facebooka i otrzymałem APP-ID.

Tak wygląda mój kod do tej pory:

public class WebViewLike extends Activity {

    private static final String TAG = "WebViewLike";
    public static final String APP_ID = "1222222";
    private Facebook facebook = new Facebook(APP_ID);

    private WebView webView;
    private Activity myActivity;

    private final class WallWebChromeClient extends WebChromeClient {

        public void onProgressChanged(WebView view, int progress)   
        {
            myActivity.setTitle("Loading...");
            myActivity.setProgress(progress * 100);

            if(progress == 100)
                myActivity.setTitle(R.string.app_name);
        }
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_PROGRESS);
        setContentView(R.layout.view_weblike);
        myActivity = this;

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

                Log.d(TAG, "onComplete");
                Log.d(TAG, "facebook.getAccessToken() " + facebook.getAccessToken());
                Log.d(TAG, "facebook.getAccessExpires() " + facebook.getAccessExpires()); 

                //Load the given URL
                webView.loadUrl(getFacebookWallUrl());
            }

            @Override
            public void onFacebookError(FacebookError error) {Log.d(TAG, "onComplete");}

            @Override
            public void onError(DialogError e) {Log.d(TAG, "onComplete");}

            @Override
            public void onCancel() {Log.d(TAG, "onComplete");}
        });

        initWebView();
    }

    private void initWebView() {
        webView = (WebView) findViewById( R.id.likeWebView );
        final WebSettings webSettings = webView.getSettings(); 
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webSettings.setJavaScriptEnabled(true);
        webSettings.setBuiltInZoomControls(false);
        webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
        webView.setHorizontalScrollBarEnabled(false);
        webView.setWebChromeClient(new WallWebChromeClient());
    }

    private String getFacebookWallUrl() {

        Log.d(TAG, "facebook.getAccessToken() != null");
        String wallUrl = "http://www.facebook.com/plugins/login.php?" + "href="
                + URLEncoder.encode("http://www.facebook.com/MyAppPage") + "&access_token="
                + URLEncoder.encode(facebook.getAccessToken());

        Log.d(TAG, "wallUrl " + wallUrl);
        return wallUrl;
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d(TAG, "onActivityResult");
        facebook.authorizeCallback(requestCode, resultCode, data);
    }
}

Na razie, gdy naciskam przycisk, przechodzę do nowego działania, które mówi, że mam już autoryzację, co oznacza, że ​​SSO działa dobrze. Problem polega na tym, że gdy nacisnę przycisk OK, tak jak powiedziałem, chcę przejść na stronę aplikacji, ale wszystkie rzeczy, które próbowałem, pokazują mi stronę aplikacji na Facebooku, ale prosi mnie o ponowne zalogowanie. Z mojego punktu widzenia muszę zmienić początekwallUrl ciąg wgetFacebookWallUrl() metoda, ale nie mogę znaleźć żadnych informacji na jej temat.

Czy to możliwe?

questionAnswers(2)

yourAnswerToTheQuestion