使用Furk.net API不会让我登录

时间:2012-01-30 07:45:37

标签: php api curl

我正在使用Furk.net API,我已成功使用curl函数登录并将帖子数据提交到正确的网址(http://api.furk.net/api/login/login)。当我回显结果时,我收到一条成功消息,cookie已成功存储在我的服务器上。但是,当我尝试从API检索信息时,它会让我拒绝访问。我想知道为什么我的cookie没有用于所有后续请求?

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);

如果我在cookie存在的情况下使用相同的功能在API上尝试另一个请求,我会拒绝访问,但如果我在登录时在浏览器中尝试相同的请求,我会得到相应的结果。

1 个答案:

答案 0 :(得分:3)

登录时,您无需保存cookie。您将通过apy_key从API收到答案。 您需要保留该密钥,并将其与所有其他请求一起发送到API(与POST参数一样)

你不应该同时使用cookie和api_key,因为如果两个请求都被发送,一些请求会被拒绝。