2012-01-30 62 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,因为某些请求被拒绝如果两者都发送。