0

ユーザーを facebook や twitter に簡単に統合するアプリを作成しようとしていました。

次のコードは、ユーザーを facebook に接続します

import android.net.Uri;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Intent browserIntent = new Intent("android.intent.action.VIEW", Uri.parse("http://www.facebook.com"));
        startActivity(browserIntent);
    } 

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

ここで私の質問は、ユーザー名とパスワードを入力する 2 つのテキスト領域をユーザーに表示し、それらを Facebook のログイン画面に送信して、ログイン画面を表示せずにその人をログインさせたいということです。

誰かがこれを行う方法を知っているか、それを行うための優れたチュートリアルがどこにあるかを知っている場合は、助けていただければ幸いです.

facebook と twitter にアプリがあることは知っていますが、学習目的の例としてのみ使用しています。

また、リンクを変更して、ログインすると PDF を表示できるサイトに変更するとします。ダウンロードせずにその画面でpdfを表示できるようにするにはどうすればよいですか?

4

1 に答える 1

2

Facebook のログイン ページにリクエストを送信するプロキシ ページをいつでも作成できます。ページは次のようになります。

<html>
<head>
<script type="text/javascript">
    function redirect() {
        document.forms["frmRedirect"].submit(); 
    }
</script>
</head>
<body onload="redirect();">
<form name="frmRedirect" action="https://www.facebook.com/login.php" method="POST">
<input type="hidden" name="email" id="email" value="<USERNAME>" />
<input type="hidden" type="password" name="pass" id="pass" value="<PASSWORD>" />
<input id="btnSubmit" type="submit" />
</form>
</body>
</html>

ユーザー名とパスワードを渡すことができるクエリ文字列値が Facebook にあるとは思えません。また、Android SDK に Web リクエスト API があるかどうかもわかりません。もしそうなら、おそらくそれらを使用するほうがよいでしょう。リクエストを完全に制御できますが、上記のような独自のプロキシ ページを使用します。ユーザー名とパスワードが状況のように動的である場合は、上記のコードを簡単に変更して、クエリ文字列値のサポートも含めることができます。次に、onload 関数を変更して、これらのクエリ文字列値を読み取り、その値を電子メール フィールドとパス フィールドに挿入します。

これがすべて完了したら、Facebook から直接ではなく、Android アプリからプロキシ ページを開くだけです。

また、最終結果によっては、ドキュメントを読みたいと思うかもしれません。http://developers.facebook.com/

于 2012-10-31T23:37:53.897 に答える