Задать вопрос
@svm2001

Как получить список постов с группы вк?

Делаю лендос, есть блок соц сетей. У клиента есть группа вк на 25к человек, раз в 2-3 дня выходит новый пост на стене. Я хочу в слайдер положить 15 последних постов и выводить их. Когда клиент добавит в группу новый пост - необходимо, чтобы этот пост подгружался в список на лендинг как самый первый. Грубо говоря, нужно дублировать стену с группы вк, ограничиваясь 10-15ю последними постами. Сложно ли это сделать? Подскажите хотя бы куда копать?
  • Вопрос задан
  • 238 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dturkey
Надеюсь поможет:
<script>
// Функция получения 15 последних постов из группы
function getLastPosts() {
    // ID группы ВКонтакте
    var groupId = "123456789"; 
    // Количество постов для получения
    var count = 15;
    // Варианты сокращения слов "час", "минута", "секунда"
    var units = ['ч', 'м', 'с'];
    
    // Запрос к API ВКонтакте на получение последних постов группы
    var xhr = new XMLHttpRequest;
    xhr.open('GET', 'https://api.vk.com/method/wall.get?owner_id=-' + groupId + '&count=' + count + '&v=5.131&access_token=YOUR_ACCESS_TOKEN', true);
    xhr.onload = function() {
        // Парсинг ответа от API ВКонтакте
        var response = JSON.parse(xhr.response);
        var items = response.response.items;
        
        // Формирование HTML-кода для отображения постов на сайте
        var html = '';
        for (var i = 0; i < items.length; i++) {
            var post = items[i];
            // Преобразование даты поста в формат "дд.мм.гггг чч:мм"
            var date = new Date(post.date * 1000).toLocaleString().replace(/:\d{2}\s/, ' ');
            // Описание поста без HTML-тегов и сокращение до 250 символов
            var text = post.text.replace(/<[^>]*>/g, '').substr(0, 250) + '...';
            
            // Формирование HTML-кода для текущего поста
            html += '<div class="post">';
            html += '<div class="date">' + date + '</div>';
            html += '<div class="text">' + text + '</div>';
            html += '</div>';
        }
        
        // Вставка сформированного HTML-кода на сайт
        document.getElementById('posts').innerHTML = html;
    };
    xhr.send();
    
    // Функция для сокращения числа с указанием единицы измерения
    function formatNumber(number) {
        if (number < 60) {
            return number + ' ' + units[2];
        } else if (number < 3600) {
            var minutes = Math.floor(number / 60);
            return minutes + ' ' + units[1];
        } else {
            var hours = Math.floor(number / 3600);
            return hours + ' ' + units[0];
        }
    }
}

// Вызов функции получения последних постов при загрузке страницы
window.onload = getLastPosts;
</script>

<!-- HTML-код для отображения постов на сайте -->
<div id="posts"></div>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
23 дек. 2024, в 09:41
5000 руб./за проект
23 дек. 2024, в 09:39
1000000 руб./за проект