gpt4 book ai didi

java - 通过 Jsoup Java Android 登录 Twitter

转载 作者:行者123 更新时间:2023-12-02 02:33:17 28 4
gpt4 key购买 nike

我正在尝试使用 Jsoup 登录 Twitter,因为我想抓取我的推文并通过 SMS 将它们发送给我,我知道如何从 HTML 处理它们,并且我知道如何通过 SMS 发送它们,我需要帮助登录步骤,我无法登录 Twitter我尝试过的是,在后台处理webview(没有任何ui)(注意:应用程序没有UI)但失败了,因为没有UI就无法处理它,使用Jsoup我尝试使用此代码登录

final String usernameKey = "session[username_or_email]";
final String passwordKey = "session[password]";
final String loginFormUrl= "https://mobile.twitter.com/login";
final String loginActionUrl = "https://mobile.twitter.com/sessions";

HashMap<String, String> cookies = new HashMap<>();
HashMap<String, String> formData = new HashMap<>();

Connection.Response loginForm = Jsoup.connect(loginFormUrl)
.userAgent(userAgent)
.method(Connection.Method.GET)
.execute();

cookies.putAll(loginForm.cookies());

doc = Jsoup.connect(loginActionUrl)
.data(usernameKey, username)
.data(passwordKey, password)
.cookies(cookies)
.method(Connection.Method.POST)
.userAgent(userAgent)
.post();

/*
doc = Jsoup.connect(twitterHomePage)
.userAgent(userAgent)
.cookies(loggedIn.cookies())
.timeout(30 * 1000)
.get();
*/
Log.d(TAG, doc.html());

但我尚未登录,仅获取 Twitter 登录页面 HTML

最佳答案

注意:通过此方法仅登录 2 次后,Twitter 就封锁了我的帐户,请自行承担风险。

这是我如何让它工作

    Map<String, String> cookies;
Map<String, String> data = new HashMap<String, String>();

Connection.Response loginPageRes = Jsoup.connect(loginFormUrl)
.userAgent(userAgent)
.referrer(refferer)
.timeout(30 * 1000)
.method(Connection.Method.GET)
.followRedirects(true)
.execute();

cookies = loginPageRes.cookies();

data.put(usernameKey, username);
data.put(passwordKey, password);
data.put("remember_me", "1");
data.put("wfa", "1");
data.put("redirect_after_login", "/");
data.put("commit", " Log in ");
data.put("authenticity_token", loginPageRes.parse().select("input[name=authenticity_token]").val());

Connection.Response resPostLogin = Jsoup.connect(loginActionUrl)
.method(Connection.Method.POST)
.userAgent(userAgent)
.referrer(loginFormUrl)
.data(data)
.cookies(cookies)
.timeout(30 * 1000)
.followRedirects(true)
.execute();

doc = resPostLogin.parse();
String timelineText = doc.text();

关于java - 通过 Jsoup Java Android 登录 Twitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46751118/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com