Используя почтальон, я отправляю POST на (мои имя пользователя и пароль заполнены):
https://ssl.reddit.com/api/login?api_type=json&user=XXX&passwd=XXX&rem=True
Я получаю ответ, содержащий модхэш и файл cookie. Затем я отправляю второй POST с почтальоном:
https://en.reddit.com/api/comment?api_type=json&text=7/1/15TEST&thing_id=t1_csa56v2
со следующими заголовками (XXX подтверждено и заполнено):
User-Agent: XXX
Cookie: reddit_session=XXX
X-Modhash: XXX
Это дает правильный ответ, но когда я пытаюсь сделать то же самое с CURL в моем PHP, он отвечает USER_REQUIRED. Я еще раз подтвердил правильность cookie и modhash.
$name = 't1_csa56v2';
$text = 'NEWEST TEST 7/2/15 12:20am';
$url = 'https://en.reddit.com/api/comment';
$modhash = 'XXX';
$cookie = 'XXX';
$headerFields = array (
'User-Agent' => 'XXX',
'Cookie' => 'reddit_session='.$cookie,
'X-Modhash' => $modhash
);
$postFields = array (
'api_type' => 'json',
'text' => $text,
'thing_id' => $name
);
$field_string = http_build_query($postFields);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headerFields);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 3);
curl_setopt($ch, CURLOPT_POSTFIELDS, $field_string);
$response = curl_exec($ch);
Что я делаю не так? Почему я не могу получить такой же ответ?
Скриншот POSTMAN: