2012-04-29 7 views
0

まず、私は多くの異なる方法を試して、これについてかなりの記事を読んでいることを明確にしたいが、誰も完全には機能していない。リモートでManagebacにログインする

私はcURLでクッキーを正常に取得することができましたが、実際にそれらを使用しようとすると、単に失敗し、私はリダイレクトされていると言います。

私が取得したいポイントは、(私はどこ

ここ

が今だ...私はちょうど、ログイン私のプロフィールからデータを取得したいし、それをものを行うことで、それだけで正しいクッキーが保存されますが、私の後のログインページを戻って返さない):

$url="https://myschool.managebac.com/sessions/"; 

$postdata = "[email protected]&password=password&commit=Sign-in&remember_me=1"; 

$cr = curl_init(); 
curl_setopt($cr, CURLOPT_URL, $url); 
curl_setopt($cr, CURLOPT_POST, TRUE); 
curl_setopt($cr, CURLOPT_HEADER, TRUE); 
curl_setopt($cr, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt($cr, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($cr, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt($cr, CURLOPT_COOKIEJAR, 'cookie.txt'); 
$header = curl_exec($cr); 
curl_close($cr); 

$cr2 = curl_init(); 
curl_setopt($cr2, CURLOPT_URL, 'https://myschool.managebac.com/'); 
curl_setopt($cr2, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 
curl_setopt($cr2, CURLOPT_HEADER, TRUE); 
curl_setopt($cr2, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($cr2, CURLOPT_COOKIEFILE, 'cookie.txt'); 
$result = curl_exec($cr2); 
curl_close($cr2); 

私はManagebacは、主にIBの学生のためのその使用されるアプリケーション(ではないので、実際に、可能な方法があることを願っています)が、私はこれを働かせてくれれば多大な助けになるだろう。

私はすべての答えがうれしいです。

+1

ちょうどコメントとして、PHPキーの配列を使用することができます=>値はあなたのPOSTデータとして、cURLはそれを処理します。 – DanRedux

+0

ええ、私は知っていますが、コードの大半は実際にどこかからコピーされ、ちょうど少数のものが変更されました。アプリケーションが動作した後、私はそれをはるかに整理します。 – Fasand

答えて

0

私は何とかそれをやった。

今、それは必要な情報を得て、すべてうまくやっています。

誰かがコードを望む場合は、ここにある:

$url="https://myschool.managebac.com/sessions"; 
$postdata = "login=mylogin&password=mypassword&commit=Sign-in&remember_me=1"; 

$cr_curlopt = array(CURLOPT_URL => $url, 
        CURLOPT_POST => TRUE, 
        CURLOPT_HEADER => TRUE, 
        CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'], 
        CURLOPT_RETURNTRANSFER => TRUE, 
        CURLOPT_POSTFIELDS => $postdata, 
        CURLOPT_COOKIEJAR => 'cookie.txt'); 

$cr = curl_init(); 
curl_setopt_array($cr, $cr_curlopt); 
$header = curl_exec($cr); 

curl_close($cr); 

$cr2_curlopt = array(CURLOPT_URL => "http://myschool.managebac.com", 
        CURLOPT_USERAGENT => $_SERVER['HTTP_USER_AGENT'], 
        CURLOPT_RETURNTRANSFER => TRUE, 
        CURLOPT_COOKIEFILE => 'cookie.txt'); 

$cr2 = curl_init(); 
curl_setopt_array($cr2, $cr2_curlopt); 
$result = curl_exec($cr2); 
curl_close($cr2); 

print $result; 

ところで、私はなぜそれが実際に役立つだろう見当がつかないが、私は1列に別々の列から追加curloptを変更した後、それが仕事を始めました。 (ありがとうDanRedux)

+0

これは実際にはもう機能しません。回避策を知っていますか? – FoxInFlame

+0

私は結局、Managebacが(まともではないが完璧な)アプリをリリースしたのでアイデアをあきらめてしまった。私はIBでやったので、もはやテストすることさえできない、恐れている。しかし、私はログイン、クッキーの取得、保存、アクセスのためにそれらを使用することは、今でもかなり同様に動作するはずだと思います。問題であると想定されるのは? – Fasand

+1

数ヶ月の試行の後、私は最終的にログインすることができました。 ManageBacは3つの異なるURLのようにリダイレクトし、ログインするために1つずつcURLする必要があります:) :)ソースは次のとおりです:https://github.com/FoxInFlame/Unofficial-ManageBacAPI/blob/master/api/0.1/authenticate_base .php – FoxInFlame

関連する問題