Написала рабочий скрипт с использованием file_get_contents
, где пользователь аутентифицируется и выводятся фото из его альбомов. Но потом мне сказали, что вместо file_get_contents
лучше использовать cURL. И я пыталась, в результате получая ошибку:
{"error":"invalid_grant","error_description":"Code is invalid or expired."}
Например, пыталась получить access_token
:
$data = array(
'client_id' => $app_id,
'client_secret' => $app_key,
'redirect_uri' => $redirect_uri,
'code' => $_GET["code"]
);
$string = http_build_query($data);
$ch = curl_init(); // открывает сессию
curl_setopt($ch, CURLOPT_URL, "https://oauth.vk.com/access_token"); // задает настройки
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $string);
$output = curl_exec($ch); // отправляет запрос
curl_close($ch); // закрывает сессию
print_r($output);
Пожалуйста, объясните как правильно это сделать. Что-то я совсем не понимаю как им пользоваться. Возможно, проблема в названии метода в конце url?
Получение access_token
Ваша ошибка в том, что Вы отправляете параметры в $_POST
, а нужно в $_GET
, т.е.:
$data = array(
'client_id' => $app_id,
'client_secret' => $app_key,
'redirect_uri' => $redirect_uri,
'code' => $_GET["code"]
);
$string = http_build_query($data);
$ch = curl_init(); // открывает сессию
curl_setopt($ch, CURLOPT_URL, "https://oauth.vk.com/access_token?".urldecode($string)); // задает настройки
$output = curl_exec($ch); // отправляет запрос
curl_close($ch); // закрывает сессию
print_r($output); //ответ в json
$token = json_decode($output, true);
var_dump($token);
Виртуальный выделенный сервер (VDS) становится отличным выбором
после получения данных делаем запрос
Доброго времени сутокПодскажите как создается отложенный постинг на примере того же сайта Вконтакте
Доброго времени! Есть две одинаковые таблицы mesages и achuvedoms с полями: