mov ah,09h
mov dx,offset HelloWorldMsg

int 21h

Most sinister interrupt vector in a world 

Сайт за 10 минут на API ВКонтакте

№ 5740 В разделе "Программирование" от November 29th, 2013,

Буквально за минуты можно сделать сайт без всяких CMS, используя только API нашей любимой социалочки ВКонтакте. Примером такого сайта может стать мой новый проект http://sheogorath.blindage.org/.

Чтобы начать рекомендую ознакомиться с документацией и решить какой функционал вам нужен. У меня самый простой пример без получения токена.

Итак, моя задача:

  1. получить и показать записи со стены группы
  2. получить и показать конкретную запись по прямой ссылке
  3. разбиение на страницы

Для того, чтобы получать записи со стены реализовано 2 функции wall.get и wall.getById. Им обоим токен не нужен и можно дергать сообщения с любой стены. Не забывайте, что id группы начинается со знака “-“.

Традиционно проверку на запрос конкретной записи делаем в начале кода:

if (isset($_REQUEST['postid'])) {
//если просят конкретную запись
$post_id=$_REQUEST['postid'];

$records_json=file_get_contents("https://api.vk.com/method/wall.getById?posts=$post_id&extended=0");
$records=json_decode($records_json, true);

foreach($records['response'] as $record) {
    echo "<li id='".$record['id']."'>".$record['text']."";
    if (isset($record['attachment']['photo']['src_big']))
    echo "<p><img src='".$record['attachment']['photo']['src_big']."'></p>";
    echo "</li>";
}

//конец кода получения конкретной записи

Дернули JSON с указанием id записи, преобразовали в массив. ID записи получается по формуле “-idгруппы_idзаписи”. Код генерации прямой ссылки покажет это наглядно.

Следующий кусок кода покажет всю стену. Обратите внимание, что в этом методе возвращается и общее количество записей, что весьма удобно для расчета листалки страниц. Помимо текста ВКонтакте нам отдаст еще и ссылки на картинки! И это просто замечательно. Я рад, что у программистов ВКонтакта руки растут не из жопы :)

} else  {
//если смотрят стену

if (isset($_REQUEST['offset']))
$offset=$_REQUEST['offset'];
else $offset=0;
$count=5;

$records_json=file_get_contents("https://api.vk.com/method/wall.get?owner_id=".
    "-62061002&domain=chocogorath&filter=owner&count=$count&offset=$offset");
$records=json_decode($records_json, true);

$count_all=$records['response'][0];

unset($records['response'][0]);

foreach($records['response'] as $record) {
    echo "<li id='".$record['id']."'>".$record['text']."\n";
    if (isset($record['attachment']['photo']['src_big']))
    echo "<p><img src='".$record['attachment']['photo']['src_big']."'></p>\n";
    echo "<br><span align='right' id='postlink'>";
    echo "<a href='?postid=".$record['from_id']."_".$record['id']."'>прямая ссылка</a></span>\n";
    echo "</li>\n\n";
}
?>
</ul>

Ну и в завершении сделаем листание страниц.

<?
echo "<p>";

if ($count_all-($count+$offset)>0) {
$next_offset=$offset+$count;
echo "<a href='?offset=" . $next_offset . "'>";
echo "Следующая страница</a> ";
}

if (($count+$offset)>$count_all) {
$prev_offset=$offset-$count;
echo "<a href='?offset=" . $prev_offset . "'>";
echo "Предыдущая страница</a> ";
}
echo "</p>";

?>
<?
//конец кода просмотра стены
 } ?>

Теперь вы можете поднять свой собственный сайтик в течении нескольких минут и использовать стену вашего аккаунта как CMS.

Шоколадный Шеогорат

4 комментариев »

4 комментариев »

Comment by Юрий | March 10, 2014 @ 00:10:41

Спасибо за статью, но хотелось бы несколько развёрнутей разобраться. Если со скроллингом всё понятно, то как и куда код вставлять не ясно вообще.

Comment by 21h | March 10, 2014 @ 00:26:47

в index.php ;) не знаю еще куда развернутей. если все равно не знаете, то могу сделать за небольшое денежное вознаграждение.

Comment by Kirill | August 4, 2015 @ 19:06:09

а можно добавить чтобы он не только картинки грабил, но и видео?

Comment by 21h | August 4, 2015 @ 20:00:27

конечно можно. но мне это делать не охото.

Форма отправки комментария

*

Разрешенные HTML-теги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

RSS RSS Feed только для этого поста |


Комментарии
  • 21h: нене ) без меня )
  • Серегй: Не совсем грабить)) если грабить можно и без рации, есть более благие цели, вы просто ответьте на мой вопрос,...
  • 21h: магазин грабить собрались? ) не, тут я не помощник ;)
  • Серегй: А что бы мне поймать чужую волну, что мне для этого нужно сделать? Допустим я купил данную рацию себе, мне...
  • 21h: слушать никто не запрещает. нет закона, который запрещает слушать. те, кто говорит иначе нагло врут. а если...
  • Серегй: Я хотел узнать могу ли я просто прийти с данной рацией baofeng uv-5r, допустим на объект, ну или вообще...
  • 21h: У меня есть только эти 2. По другим ничего не знаю. В интернете можно скачать инструкцию к вашей модели рации,...
  • Серегй: Добрый день! Хотелось бы задать пару вопросов по поводу раций, у Вас есть куда можно обратиться ТАТ.
  • 21h: потому, что нейросетью проще. яркость светофора меняется в зависимости от времени суток от маленькой красной...
  • Михаил: А зачем нейросеть? Почему цвет светофора определить без нейросетей?