Добрый вечер. Решил немного автоматизировать процесс публикации конкурсов из Вконтакте на сайт mrandom.com. Спойлер: Написал такой код PHP: <?php $data_string = '{ "token": " ******", "title": $title, "url": $url, "provider": "vkontakte", "language": "ru_RU", "category": 3, "hashtags": "игры, игра", "finish_conditions": { "action": "participants", "count": $count }, "participation_conditions": { "repost": $repost, "like": $like, "join": $join }, "prizes": [ { "name": $name, "percent": false, "count": $count_prizes } ] }' $title = ""; $url = ""; $count = ""; $repost = ""; $like = ""; $join = ""; $name = ""; $count_prizes = ""; if (isset($_POST['title'])) { $title = $_POST['title']; } else { $title = NULL; } if (isset($_POST['url'])) { $url = $_POST['url']; } else { $url = NULL; } if (isset($_POST['count'])) { $count = $_POST['count']; } else { $count = NULL; } if (isset($_POST['repost'])) { $repost = "true"; } else { $repost = "false"; } if (isset($_POST['like'])) { $like = "true"; } else { $like = "false"; } if (isset($_POST['join'])) { $join = "true"; } else { $join = "false"; } if (isset($_POST['name'])) { $name = $_POST['name']; } else { $name = NULL; } if (isset($_POST['count_prizes'])) { $count_prizes = $_POST['count_prizes']; } else { $count_prizes = NULL; } echo $title . "<br />"; echo $url . "<br />"; echo $count . "<br />"; echo $repost . "<br />"; echo $like . "<br />"; echo $join . "<br />"; echo $name . "<br />"; echo $count_prizes . "<br /><br />----------------------------------------------<br />"; $ch = curl_init('http://mrandom.com/contest/create?v=1'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_POSTREDIR, 3); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/x-www-form-urlencoded', 'Content-Length: ' . strlen($data_string) )); $result = curl_exec($ch); curl_close($ch); echo "Ответ на Ваш запрос: " . $result . "<br />" . "<br />"; var_dump($result) ?> С формы заполняю поля и отправляю. Вроде бы всё правильно сделал, но получаю такой ответ от API: Код (Text): {"error":"Вы не авторизованы"} Открыл документацию по API и заметил, что в ответе API нет кода ошибки. Как я понял, ошибка должна быть в таком формате: "{error: "Используемый токен недействителен", code: 1}", но мне приходит: {"error":"Вы не авторизованы"}. Параметра "code" просто нет. Что значит "Вы не авторизованы" и как это исправить?
Попробовал отправить данные через Postman. Всё работает через эту программу, но когда программа мне сгенерировала php-код, то ничего не работает. Пример кода: PHP: <?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "http://mrandom.com/contest/create?v=1", CURLOPT_FOLLOWLOCATION => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "access_token=76547***************************1b8dac16e77da04d5fc5e7eb&title=Games%20Delivery&url=https%3A%2F%2Fvk.com%2Fgames_delivery%3Fw%3Dwall-48871288_3336&provider=vkontakte&language=ru_RU&category=3&hashtags=%D0%B8%D0%B3%D1%80%D1%8B%2C%20%D0%B8%D0%B3%D1%80%D0%B0&participation_conditions=%7B%22repost%22%3Atrue%2C%22like%22%3Atrue%2C%22join%22%3Atrue%7D&prizes=%7B%22name%22%3A%22%D0%A1%D0%BB%D1%83%D1%87%D0%B0%D0%B9%D0%BD%D0%B0%D1%8F%20%D0%B8%D0%B3%D1%80%D0%B0%22%2C%22percent%22%3Afalse%2C%22count%22%3A2%7D&finish_conditions=%7B%22action%22%3A%22participants%22%2C%20%22count%22%3A25%7D", CURLOPT_HTTPHEADER => array( "cache-control: no-cache", "content-type: application/x-www-form-urlencoded", "postman-token: a9303d8e-8281-d1ee-c67d-6ab87de59158" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } Помогите разобраться пожалуйста.