officialmuse
@officialmuse
фронтэндщик и немного бэкэндю :)

Как работать с api vk на php?

Помогите разобраться с api vk likes.getlist
$request_params = array(
'type' => 'post',
'owner_id' => '-42621674',
'item_id' => '2146',
'filter' => 'likes',
'skip_own' => '0'
);

$get_params = http_build_query($request_params);
$result = json_decode(file_get_contents('https://api.vk.com/method/likes.getList?'. $get_params));
echo($result -> response[0] -> likes);

Раз 30 разных вариантов перепробовал но всё равно count репостов(или лайков) просто не выводится. Что делать?
Вот тест: tests.hopeness.ml/test1.php
  • Вопрос задан
  • 646 просмотров
Решения вопроса 1
littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.
У Вас проблема не с API ВК, а с "echo($result -> response[0] -> likes);"
Вы обращаетесь к объекту, как к массиву(смотрите, как работает функция json_decode).

Определитесь, как работать с $result.

1. Сделать его массивом, тогда: (сделайте print_r($result) и поймете его структуру)
$result = json_decode(file_get_contents('https://api.vk.com/method/likes.getList?'. $get_params), true);
echo $result["response"]["count"];


2. Если Вы хотите работать, как с объектом: (сделайте var_dump($result) и поймете его структуру)
$result = json_decode(file_get_contents('https://api.vk.com/method/likes.getList?'. $get_params));
echo($result -> response -> count);


3. Посмотрите подробнее на аргументы функции json_decode.
Пользуйтесь print_r/var_dump для дебага и полного вывода переменных, чтобы понимать, что внутри них.

Смотрите логи там бы было написано в чем конкретно ошибка.
Если на хостинге нет доступа к логам - запустите скрипт локально, в консоли, например. (для windows можно поставить git bash + интерпретатор php и прописать его в PATH)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
А правильные ID?
Просто вот тест:
https://api.vk.com/method/likes.getList?type=post&...
Это вот этот пост:
https://new.vk.com/warm_music?w=wall-26797336_54325

Может Ваш какой-то закрытый?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы