我尝试模拟授权LinkedIn网络浏览器(PHP)。我使用Guzzle Http Client。
以下是授权码的一部分:
{{1}}
请求成功,返回200代码,但我没有授权。 谁可以面对类似的任务,或者在代码中错过了什么。我很感激任何建议。
答案 0 :(得分:1)
我认为问题在于CSRF保护和其他隐藏参数。 LinkedIn和其他网站一样,对于所有情况通常都会返回200 OK,即使出现错误,也会在结果HTML中描述详细信息。
在您的情况下,最好使用网络剪贴簿,例如Goutte。它使用浏览器模拟用户,因此您不必担心许多事情(例如CSRF保护和其他隐藏字段)。可以找到示例on the main pages,尝试这样的事情:
$crawler = $client->request('GET', 'https://www.linkedin.com');
$form = $crawler->selectButton('Sign In')->form();
$crawler = $client->submit($form, array(
'login' => 'My_email',
'password' => 'My_password'
));
您可以将它与Guzzle一起用作驱动程序,但有些网站可能需要JavaScript(我对亚马逊不确定)。然后你必须去一个真正的浏览器或PhantomJS(一种无头的Chrome)。