4
我有兩個EditText(id,密碼)和一個按鈕(登錄)。 當我點擊按鈕我想登錄FaceBook並打開網站。 但我不能看已登錄的網站。Android如何使用jsoup自動登錄FB
這是我的代碼。
public class MainActivity extends Activity {
EditText id;
EditText password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
id = (EditText) findViewById(R.id.editText1);
password = (EditText) findViewById(R.id.editText2);
Button logIn = (Button) findViewById(R.id.button1);
logIn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Login();
}
});
}
public void Login(){
System.out.println("id:" + id.getText().toString());
System.out.println("password:" + password.getText().toString());
try {
Connection.Response res = Jsoup.connect("https://www.facebook.com/login.php?login_attempt=1")
.data("email", id.getText().toString())
.data("pass", password.getText().toString())
.method(Method.POST)
.timeout(60000)//1 min
.execute();
Map<String, String> loginCookies = res.cookies();
Document doc = Jsoup.connect("https://www.facebook.com")
.cookies(loginCookies)
.get();
System.out.println(doc.text().toString());
} catch (Exception e) {
e.printStackTrace();
}
Uri uri = Uri.parse("https://www.facebook.com");
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
您正在用JSoup登錄打開FB會話。但是,如果您不將返回的cookie傳送給意圖(這樣FB認爲這是一個新的未經驗證的會話),這是沒用的。請參閱http://stackoverflow.com/questions/3717236/pass-cookie-to-browser-via-intent –