5

Facebookのソーシャル機能を統合する必要があるアプリケーションに取り組んでいます。

私のアプリケーションには、ユーザーをFacebookプロファイルに接続するボタンがあります。ユーザーがこのボタンを押すと、FacebookサイトとユーザーのFacebookページでのみWebビューが開きます。ここで、彼の電子メールとパスワードを知っていて、自動的に接続したいので、毎回電子メールとパスワードを入力する必要がないとしましょう。私はそれを解決しようとしましたが、次の質問を投げますが、ご覧のとおり成功しませんでした。

また、CookieSyncManager、CookieManagerを使用してCookieを永続化し、手動で処理してみました。

webViewに送信するURLを変更することで解決できると思いますが、どのURLかわかりません。(たとえば、ユーザーのFacebookページのURLを試しhttp://www.facebook.com/connect/connect_to_external_page_widget_loggedin.phpてから連結します)http://www.facebook.com/plugins/login.phphttp://www.facebook.com/UserProfile

私は本当に助けに感謝します!

ありがとう。

4

3 に答える 3

4

ユーザーを facebook に手動でログインすることはできません。これが oAuth の要点です。プロセスはアプリに対して透過的である必要があり、ユーザーが認証を完了すると、アプリは AccessToken のみを取得します。

その時点から、AccessToken はほぼ永遠に存続できます。

次の場合は無効になります。

  1. セッションの有効期限が切れます

    onResume()これは、Facebook の認証/統合に Facebook Android SDK を使用していると仮定して、呼び出しを追加することで解決できます。この呼び出しが成功すると、トークンは 60 日間有効になります。

    public void onResume() {    
        super.onResume();
        facebook.extendAccessTokenIfNeeded(this, null);
    }
    
  2. ユーザーがパスワードを変更する

  3. ユーザーがアプリの認証を解除する

  4. ユーザーが Facebook からログアウトする

    この 3 つのケースはどうすることもできません。トークンは無効になり、通常のフローを使用してユーザーに再認証を求める必要があります。

このチュートリアルに従って、Facebook を Android アプリ内に統合します

于 2012-06-25T08:35:59.063 に答える
2

ここで説明されているように、SSO の代わりに SDK 認証を使用する方法があります: How to disable Facebook single sign on for android - Facebook-android-sdk
しかし、ユーザーは自分の電子メール/パスワードを入力する必要があるため、ユーザー エクスペリエンスが低下するだけだと思います。これは、ほとんどのモバイル デバイスでは楽しい作業ではありません。

ユーザーが facebook アプリケーション (katana) をインストールしている場合 (SSO を使用することを意味します)、インテントを使用してユーザー プロファイルで開くことができるはずです。
私は前にそれをやったことがありませんが、これらの 2 つのスレッドから:
他のアプリから Facebook アプリを起動
し、Android アプリから Facebook ページ を
開くと、
次のようなことができるようです:

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
this.startActivity(intent);
于 2012-06-26T08:17:07.593 に答える
0

facebook に接続するには、最初に Oauth を学習します。Oauth は、Facebook の詳細にアクセスするための 1 回限りの検証です。パスワードは毎回必要ありません。このドキュメントに目を通してください。

また、このドキュメントも役に立ちます。

于 2012-06-21T08:40:14.360 に答える