4
두 개의 EditText (id, password)와 하나의 버튼 (login)이 있습니다. 버튼을 클릭하면 페이스 북에 로그인하고 사이트를 열고 싶습니다. 그러나 이미 사이트에 로그인 한 것을 볼 수 없습니다.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 세션을 여는 중입니다. 그러나 이것은 반환 된 쿠키를 인 텐트로 전송하지 않으면 쓸모가 없습니다 (따라서 FB는 새로운 인증되지 않은 세션이라고 생각합니다). http://stackoverflow.com/questions/3717236/pass-cookie-to-browser-via-intent를 참조하십시오. –