0

facebook-android-sdk-3.0.1.bを使用して、AndroidアプリをFacebookと統合しています。ユーザーがログインした後(明示的または暗黙的に-関係ありません)、コールバックが呼び出されます。

@Override
protected void onSessionStateChange(SessionState state, Exception exception) {
    if (state.isOpened()) {         
        final String urlString = "http://www.facebook.com/22332332322";
        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(urlString)));
    }
}

ご覧のとおり、Facebookページを渡してブラウザを起動します。私の目標は、ユーザーがこのページを「いいね」できるようにすることです。ただし、ユーザーがこのページの「いいね」ボタンを押すと、承認を求められます。彼はすでに承認しているので、それは良くありません。

facebook-android-sdkから認証情報(アクセストークンなど)を抽出して、この情報をブラウザーに渡すことは可能ですか?

アップデート

セッションのアクセストークンを取得できることがわかりました。

final String accessToken = getAccessToken();

しかし、どうすればそれをブラウザに渡してユーザーをログインさせることができますか?

4

1 に答える 1

3

この問題もありました。この例では、ユーザーがFacebookアカウントを持っている場合、デバイスにもFacebookアプリがあると想定しています。したがって、その場合、ユーザーが「フォローする」ボタンを押すと、ページでFacebookアプリを開くだけで、ユーザーは「いいね」ボタンを押すだけで済みます。

ユーザーが自分のデバイスにアプリケーションを持っていない場合は、Facebookページでブラウザーを開きます。

あなたはこのようにそれを行うことができます:

try{

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/22332332322)); 
startActivity(intent);

}catch(Exception e){

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/22332332322")));
}

もう1つの可能性は、Facebook APIからのシングルサインオンを使用することです。これは、よりユーザーフレンドリーな方法です。ユーザーは、あなたが何を望んでいるかを正確に確認でき、承認できるかどうかを確認できます。

おっしゃるように、アクセストークンは取得できますが、ブラウザに渡すことはできないと思います。半年前に試しましたが、答えが見つかりませんでした。

あなたは私の質問をチェックすることができます、それはあなたを助けるかもしれません:

link1

link2

link3

link4

于 2012-11-13T15:15:22.790 に答える