2012-01-30 34 views
1

我使用的是Furk.net API,並且我成功地使用curl函數登錄並將發佈數據提交到正確的URL(http://api.furk.net/api/login/login)。當我回復結果時,我收到一條成功消息,並將cookie成功存儲在我的服務器上。但是,當我嘗試從API中檢索信息時,它會使我拒絕訪問。我想知道爲什麼我的cookie沒有被用於所有以下請求?使用Furk.net API不會讓我登錄

function getUrl($url, $method='', $vars='') { 
    global $megauser; 
    $ch = curl_init(); 
    if ($method == 'post') { 
     curl_setopt($ch, CURLOPT_POST, 1); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, $vars); 
    } 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt'); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); 
    $buffer = curl_exec($ch); 
    curl_close($ch); 
    return $buffer; 
} 

$login_data = array(
    'login' => 'user', 
    'pwd' => 'pass' 
); 

echo getUrl('http://api.furk.net/api/login/login','post', $login_data); 

如果我嘗試使用此功能相同的API另一個請求而cookie存在,我得到拒絕訪問,但如果我嘗試在我的瀏覽器相同的請求,同時登錄,我得到了相應的結果。

回答

3

當您登錄時,您不需要保存cookie。您將通過apy_key從API獲得答案。 您需要保留該密鑰,並將其與所有其他請求一起發送到API(作爲POST參數)

而且您不應該同時使用cookie和api_key,因爲某些請求被拒絕如果兩者都發送。