ykpon
Постоялец
- Регистрация
- 8 Дек 2012
- Сообщения
- 250
- Реакции
- 150
Тема хоть и старая, но ответа в ней так и нет.
Искал решение подобной проблемы, наткнулся на эту тему. Раз уж решил, то здесь оставлю свой вариант.
PHP скриптом получаем данные о группе через OpenAPI:
На странице, где нужно вывести новости, добавляем jQuery скрипт, вернее функцию:
YOUR_SITE - меняем на адрес своего сайта. vk_group.php - скрипт, который был выложен выше. Функция getTimeFormat получает дату в удобном формате из timestamp формата.
В итоге на странице нужно вызвать функцию getWall(group), заменив group на ID либо короткий адрес своей(или нет) группы, откуда нужно парсить новости. Новости запишутся в элемент с ID "wall", будь то <div id="wall"></div> или <span id="wall"></span>.
Искал решение подобной проблемы, наткнулся на эту тему. Раз уж решил, то здесь оставлю свой вариант.
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;
}
В итоге на странице нужно вызвать функцию getWall(group), заменив group на ID либо короткий адрес своей(или нет) группы, откуда нужно парсить новости. Новости запишутся в элемент с ID "wall", будь то <div id="wall"></div> или <span id="wall"></span>.