Использование Furk.net API не держит меня в системе - PullRequest
1 голос
/ 30 января 2012

Я использую Furk.net API , и мне удалось успешно войти в систему с помощью функции curl и отправить данные сообщения на правильный URL-адрес (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);

Если я попытаюсь выполнить еще один запрос к API, используя эту же функцию, в то время как файл cookie существует, мне будет отказано в доступе, но если я попытаюсь повторить тот же запрос в своем браузере при входе в систему, я получу соответствующие результаты.

1 Ответ

3 голосов
/ 23 июля 2014

Когда вы входите в систему, вам не нужно сохранять куки. Вы получите ответ от API с ключом apy_key. Вам нужно сохранить этот ключ и отправить его вместе со всеми вашими другими запросами к API (как параметр POST)

И вам не следует использовать cookie и ключ api_key одновременно, так как некоторые запросы отклоняются, если отправляются оба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...