我目前正在尝试从蒸汽登录中获取我的会话I和cookie。
当我手动登录并检查网络响应时,我可以看到我需要的信息。它主要位于dologin/中。
http://imgur.com/a/ZFwAQ -第一个图像是getrsakey/,第二个图像是dologin/
在第二张图片上,我用一个红色的盒子标记了我需要的东西。我想我只需要浏览器和
$url = "https://steamcommunity.com/login/getrsakey/";
$params = ['username' => "MyUsername", 'password' => "MyPassword"];
$cookie_jar = tempnam('/tmp', 'cookie');
$session = curl_init($url);
curl_setopt($session, CURLOPT_POST, true);
curl_setopt($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, 1);
curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($session, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($session, CURLOPT_TIMEOUT, 30);
curl_setopt($session, CURLOPT_MAXREDIRS, 10);
curl_setopt($session, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($session, CURLOPT_COOKIEJAR, $cookie_jar);
$response = curl_exec($session);
die(var_dump($cookie_jar));
curl_close($session);
有了上面的卷曲,我似乎只得到了getrsakey/的统计量,原因很明显。我试着用我做的炊具发出第二个卷曲请求,然后请求dologin/,但我得到的只是
"{"success":false}bool(true)}"
TLDR:我需要来自steamMachineAuth dologin/的browserid和-参见上面的链接(第二个图像)--如果可能的话,基本上是整个cookie。
发布于 2016-02-16 09:51:59
我知道这是一个接一个的问题,但我认为,有人可能仍然需要一个答案。
正如您所说的,您需要进行第二次请求dologin/,但不需要使用您创建的cookiejar。
首先,当您向、getrsakey/发送请求时,只需要用户名参数(不需要密码)。
您需要使用rsa方法加密您的密码(密钥分为密钥模、密钥和密钥指数)。
RSA加密密码需要用base64编码,即发送给dologin/的密码参数。
但不幸的是,如果帐户受到保护,蒸汽可能希望获得Captcha代码和/或SteamGuard代码,因此您也需要实现这一点。
我没有工作的PHP代码,但是您可以查看SteamBot写在C#中,并在此基础上编写代码。在文件中搜索方法:https://github.com/Jessecar96/SteamBot/blob/master/SteamTrade/SteamWeb.cs#L88
https://stackoverflow.com/questions/31394570
复制相似问题