2011-10-24 9 views
0

curlを使用してbasecampにログインし、添付ファイルをダウンロードしようとしています。cURLはbasecampにログインできません

しかし、私はカールとき:

それが認証していない
curl -F "username=my-user&password=my-pwd" "https://my-domain.basecamphq.com/login" 

。アウトアウト:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 TRANSITIONAL//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 

<head> 
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> 
    <meta name="robots" content="noindex, nofollow" /> 
    <meta name="csrf-param" content="authenticity_token"/> 
<meta name="csrf-token" content="H5w&#47;7j9I5s38oQ9NdVgpkp&#47;QCxIZ3YW+qM&#47;+Hj&#47;ERr0="/> 
    <title>My Domain Name.: Sign in</title> 
    <script src="https://my-domain.basecamphq.com/rev_28dd107/sprockets.js?651551a0be3439fa32557210a7eea7d7" type="text/javascript"></script> 
    <link href="https://my-domain.basecamphq.com/rev_28dd107/application.css" media="screen" rel="stylesheet" type="text/css" /> 
    <link href="https://my-domain.basecamphq.com/rev_28dd107/stylesheets/print/application.css" media="print" rel="stylesheet" type="text/css" /> 

    <!--[if IE]><link href="https://my-domain.basecamphq.com/rev_28dd107/stylesheets/ie/base.css" media="screen" rel="stylesheet" type="text/css" /><![endif]--> 


    <meta name="queenbee-id" content="1152680" /> 

    <meta name="return-to-location" content="" /> 

    <script type="text/javascript"> 
    if (Login.recoverSessionToken()) { 
     Login.clearPersistedTokens(); 
     window.location = ""; 
    } 
    </script> 

</head> 

<body class="login"> 


    <div class="login"> 
     <h1>My Domain Name.</h1> 







<div id="login_dialog" class="login_dialog"> 
    <form accept-charset="UTF-8" action="https://launchpad.37signals.com/authenticate" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /><input name="authenticity_token" type="hidden" value="H5w/7j9I5s38oQ9NdVgpkp/QCxIZ3YW+qM/+Hj/ERr0=" /></div> 
    <input id="product" name="product" type="hidden" value="basecamp" /> 
    <input id="subdomain" name="subdomain" type="hidden" value="my-domain" /> 

    <div id="user_name_login"> 
     <h2>Username</h2> 
     <input autocapitalize="off" autocorrect="off" id="username" name="username" type="text" /><br/> 

     <h2>Password</h2> 
     <input id="password" name="password" type="password" /><br/> 

     <label><input class="auto" id="remember_me" name="remember_me" type="checkbox" value="1" /> Remember me on this computer</label><br /> 

     <input class="button" name="commit" type="submit" value="Sign in" /> 

     <div class="extras"> 
     <ul> 
      <li><strong>Help:</strong> <a href="/amnesia/forgot_password">I forgot my username or password</a></li> 
     </ul> 
     </div> 
    </div> 
</form></div> 

<script type="text/javascript"> 
//<![CDATA[ 
$("username").focus() 
//]]> 
</script> 

    </div> 
</body> 

</html> 

ここで何が問題になりましたか?もし助けてくれれば幸いです!事前に

感謝:)

答えて

2

あなたは出力からわかるように、ベースキャンプのウェブサイトを経由してログインだけで、ユーザー名とパスワードよりも多くを必要とします。

最低でもそれは

  • authenticity_token=H5w/7j9I5s38oQ9NdVgpkp/QCxIZ3YW+qM/+Hj/ERr0=

が必要ですが、これはあなたがページを訪問するたびに異なるものになります。

また、あなたはこれであなたの目的は何

  • product=basecamp
  • subdomain=mobme

を含める必要があるかもしれないようですか? サイトをスクリーンスクレイプしようとしていますか?

私はあなただけの開発者API http://developer.37signals.com/

を調べたり、それがあなたのために十分ではない場合、RubyまたはPerlMechanizeを試してみる必要があります示唆しています。 これは簡単なスクリプト可能なロボットを作成し、ページを読み込んで相互作用するので、正しいパラメータを偽ることを心配する必要はありません。

関連する問題