Вконтакте Вывод стены группы на сайте

ykpon

Постоялец
Регистрация
8 Дек 2012
Сообщения
250
Реакции
150
Тема хоть и старая, но ответа в ней так и нет.
Искал решение подобной проблемы, наткнулся на эту тему. Раз уж решил, то здесь оставлю свой вариант.

PHP скриптом получаем данные о группе через OpenAPI:
PHP:
<?php
if(!isset($_GET['group']) || empty($_GET['group'])) {
    header("HTTP/1.1 403 Forbidden");
    exit();
}
echo file_get_contents("https://api.vk.com/method/wall.get?domain={$_GET['group']}");

На странице, где нужно вывести новости, добавляем jQuery скрипт, вернее функцию:
PHP:
    function getWall(group_id) {
        $.get('http://YOUR_SITE/vk_group.php', {
        group:group_id},
        function(data) {
            var r = $.parseJSON(data);
            if(!r.error) {
                $.each(r.response,function (k,v) {
                    if(typeof v.id !== 'undefined') {
                       var url = 'https://vk.com/wall' + v.from_id + '_' + v.id,
                            records += '<span style="font-family:\'Lucida Sans Unicode\';font-size:12pt;">' + v.text + '</span><br><br><p class="pull-right">' + getTimeFormat(v.date) + '</p><br><hr>';
                    }
                });
                $('#wall').html(records);
            }
        });
    }
    function getTimeFormat(timestamp) {
        var d = new Date();
        d.setTime(timestamp*1000);
        var curr_day = d.getDate(),
            curr_month = d.getMonth() + 1,
            curr_year = d.getFullYear(),
            curr_hour = d.getHours(),
            curr_min = d.getMinutes(),
            curr_sec = d.getSeconds();
        return curr_day + "-" + curr_month + "-" + curr_year + " " + curr_hour + ":" + curr_min + ":" + curr_sec;
    }
YOUR_SITE - меняем на адрес своего сайта. vk_group.php - скрипт, который был выложен выше. Функция getTimeFormat получает дату в удобном формате из timestamp формата.

В итоге на странице нужно вызвать функцию getWall(group), заменив group на ID либо короткий адрес своей(или нет) группы, откуда нужно парсить новости. Новости запишутся в элемент с ID "wall", будь то <div id="wall"></div> или <span id="wall"></span>.
 

anfriska

Профессор
Регистрация
3 Окт 2013
Сообщения
113
Реакции
43
Тема хоть и старая, но ответа в ней так и нет.
Искал решение подобной проблемы, наткнулся на эту тему. Раз уж решил, то здесь оставлю свой вариант.

PHP скриптом получаем данные о группе через OpenAPI:
PHP:
<?php
if(!isset($_GET['group']) || empty($_GET['group'])) {
    header("HTTP/1.1 403 Forbidden");
    exit();
}
echo file_get_contents("https://api.vk.com/method/wall.get?domain={$_GET['group']}");

На странице, где нужно вывести новости, добавляем jQuery скрипт, вернее функцию:
PHP:
    function getWall(group_id) {
        $.get('http://YOUR_SITE/vk_group.php', {
        group:group_id},
        function(data) {
            var r = $.parseJSON(data);
            if(!r.error) {
                $.each(r.response,function (k,v) {
                    if(typeof v.id !== 'undefined') {
                       var url = 'https://vk.com/wall' + v.from_id + '_' + v.id,
                            records += '<span style="font-family:\'Lucida Sans Unicode\';font-size:12pt;">' + v.text + '</span><br><br><p class="pull-right">' + getTimeFormat(v.date) + '</p><br><hr>';
                    }
                });
                $('#wall').html(records);
            }
        });
    }
    function getTimeFormat(timestamp) {
        var d = new Date();
        d.setTime(timestamp*1000);
        var curr_day = d.getDate(),
            curr_month = d.getMonth() + 1,
            curr_year = d.getFullYear(),
            curr_hour = d.getHours(),
            curr_min = d.getMinutes(),
            curr_sec = d.getSeconds();
        return curr_day + "-" + curr_month + "-" + curr_year + " " + curr_hour + ":" + curr_min + ":" + curr_sec;
    }
YOUR_SITE - меняем на адрес своего сайта. vk_group.php - скрипт, который был выложен выше. Функция getTimeFormat получает дату в удобном формате из timestamp формата.

В итоге на странице нужно вызвать функцию getWall(group), заменив group на ID либо короткий адрес своей(или нет) группы, откуда нужно парсить новости. Новости запишутся в элемент с ID "wall", будь то <div id="wall"></div> или <span id="wall"></span>.


Подскажите пожалуйста как это реализовать?

1. vk_group.php - вставляем содержимое php скрипта и кидаем в корень сайта?
2. Куда вставить содержимое второго скрипта, в шаблон сайта?

Если, id группы - 1000000, то содержимое должно выглядеть так?

PHP:
  function getWall(group_id) {
        $.get('http://moysayt.ru/vk_group.php', {
        group:1000000},
        function(data) {
            var r = $.parseJSON(data);
            if(!r.error) {
                $.each(r.response,function (k,v) {
                    if(typeof v.id !== 'undefined') {
                       var url = 'https://vk.com/wall' + v.from_id + '_' + v.id,
                            records += '<span style="font-family:\'Lucida Sans Unicode\';font-size:12pt;">' + v.text + '</span><br><br><p class="pull-right">' + getTimeFormat(v.date) + '</p><br><hr>';
                    }
                });
                $('#wall').html(records);
            }
        });
    }
    function getTimeFormat(timestamp) {
        var d = new Date();
        d.setTime(timestamp*1000);
        var curr_day = d.getDate(),
            curr_month = d.getMonth() + 1,
            curr_year = d.getFullYear(),
            curr_hour = d.getHours(),
            curr_min = d.getMinutes(),
            curr_sec = d.getSeconds();
        return curr_day + "-" + curr_month + "-" + curr_year + " " + curr_hour + ":" + curr_min + ":" + curr_sec;
    }

И если группа закрытая, то нужна еще авторизация какая-то?
 

lev731

Писатель
Регистрация
12 Мар 2015
Сообщения
3
Реакции
3
Добрый день! anfriska получилось ли у вас реализовать вывод стены на сайт?
 

Shnapik

Писатель
Регистрация
6 Мар 2014
Сообщения
8
Реакции
1
Писал статью по этому поводу, для вывода через php можно воспользоваться VK API.
Статья: Для просмотра ссылки Войди или Зарегистрируйся
 

Aquarel5Ru

Писатель
Регистрация
31 Июл 2017
Сообщения
3
Реакции
0
Приветствую! Кто-нибудь пробовал скрипт в 2018?
 
Сверху