MrFallen
Новичок
Добрый вечер. Решил немного автоматизировать процесс публикации конкурсов из Вконтакте на сайт mrandom.com.
С формы заполняю поля и отправляю. Вроде бы всё правильно сделал, но получаю такой ответ от API:
Открыл документацию по API и заметил, что в ответе API нет кода ошибки. Как я понял, ошибка должна быть в таком формате: "{error: "Используемый токен недействителен", code: 1}", но мне приходит: {"error":"Вы не авторизованы"}. Параметра "code" просто нет. Что значит "Вы не авторизованы" и как это исправить?
PHP:
<?php
$data_string = '{
"token": "7654778446bdbc6b6f5e27114*******1bf32639a565253648d226a361c11d71b8dac16e77da04d5fc5e7eb",
"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)
?>
Код:
{"error":"Вы не авторизованы"}
Открыл документацию по API и заметил, что в ответе API нет кода ошибки. Как я понял, ошибка должна быть в таком формате: "{error: "Используемый токен недействителен", code: 1}", но мне приходит: {"error":"Вы не авторизованы"}. Параметра "code" просто нет. Что значит "Вы не авторизованы" и как это исправить?
Последнее редактирование: