Вопрос по authentication, android, facebook – Перейти к странице приложения Facebook после аутентификации с помощью единого входа

1

Я работаю над приложением, в котором мне нужно интегрировать социальные функции Facebook.

Я хочу использовать функцию единого входа (SSO), и когда пользователь нажмет кнопку в моем приложении, откроется веб-просмотр и покажет ему страницу моего приложения в Facebook, после того как пользователь прошел аутентификацию, и теперь он может делать то же, что и другие. вещи как аутентифицированный пользователь.

Я загрузил Facebook SDK и включил его в свой проект. Я также подписал свое приложение на странице разработчиков Facebook и получил APP-ID.

Вот как мой код выглядит до сих пор:

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);
    }
}

На данный момент, когда я нажимаю кнопку, я перехожу к новому действию, которое говорит, что я уже авторизован, что означает, что SSO работает нормально. Проблема в том, что, когда я нажимаю кнопку «ОК», как я уже сказал, я хочу перейти на страницу своего приложения, но все, что я пробовал, показывает мою страницу приложения Facebook, но просит меня войти снова. С моей точки зрения мне нужно изменить началоwallUrl строка наgetFacebookWallUrl() метод, но я не могу найти никакой информации об этом.

Является ли это возможным?

Ваш Ответ

2   ответа
0

Вы можете использовать fbrocket api для интеграции с Facebook, как показано в следующем примере. Я использую это успешно.

http://www.androidpeople.com/android-facebook-api-example-using-fbrocket/#idc-cover

Я не хочу публиковать статус, я просто хочу показать пользователю мою страницу в Facebook без необходимости входа в систему. Из того, что я вижу, fbrocket предназначен для статуса поста. Благодарю. Ofir A.
1

Вы делитесь чем-то о своем приложении через социальную сеть? Если ваш ответ да, попробуйтеэтот.

Не делиться чем-либо, просто хочу, чтобы пользователь увидел страницу моего приложения и чтобы у него была возможность делать что-то подобное или другие вещи, например читать комментарии или оставлять комментарии. Ofir A.

Похожие вопросы