Извличане на коментарите от Facebook Comments като текст в страниците на сайта


 

UPDATE: Кликнете тук за да видите скрипт за facebook коментари, оптимизирани за SEO на сайта

Това е начин да извлечете фейсбук коментарите от FQL таблицата на Facebook и да ги вложите като индексируем текст в сайта си:

СТЪПКА 1: Трябва да вземем URL адреса на страницата, от която ще вземем коментарите. Това може да стане със следния php скрипт:

<?php
// взимане на URL на страницата:
function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
 $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
 $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}
?> 

СТЪПКА 2: Кодът за извличане на коментарите:

<?php
// задаване на променлива за URL. curPageURL() взима настоящия URL – виж предходната стъпка. $url може да е конкретен адрес, например $url = ‘http://ivosiliev.com’;
$url = curPageURL();

// fql заявки
$queries = array(‘q1’ => ‘select post_fbid, fromid, object_id, text, time from comment where object_id in (select comments_fbid from link_stat where url =“‘.$url.'“)’,
‘q2’ => ‘select post_fbid, fromid, object_id, text, time from comment where object_id in (select post_fbid from #q1)’,
‘q3’ => ‘select name, id, url, pic_square from profile where id in (select fromid from #q1) or id in (select fromid from #q2)’,
);

// json заявка
$result = json_decode(file_get_contents(‘http://api.facebook.com/restserver.php?format=json-strings&method=fql.multiquery&queries=’.urlencode(json_encode($queries))));

$comments = $result[0]->fql_result_set;
$replies = $result[1]->fql_result_set;
$profiles = $result[2]->fql_result_set;
$profiles_by_id = array();
foreach ($profiles as $profile) {
$profiles_by_id[$profile->id] = $profile;
}
$replies_by_target = array();
foreach ($replies as $reply) {
$replies_by_target[$reply->object_id][] = $reply;
}

// визуализиране на аватар, линк до профила, име на потребителя, дата на коментара, коментар
function pr_comment($comment, $profiles_by_id) {
$profile = $profiles_by_id[$comment->fromid];
$author_markup = “;
if ($profile) {
$author_markup =
‘<div style=“float:left; margin:0 10px 10px 0;clear:both;“><span>’.
‘<a href=“‘.$profile->url.'“ target=“_blank“>’.
‘<img src=“‘.$profile->pic_square.'“ /></a><br>’.
‘<a href=“‘.$profile->url.'“ target=“_blank“>’.$profile->name.'</a>’.
‘</span>’;
}

return
$author_markup.
‘<br /><span> (‘.date(‘r’, $comment->time).’)’.
‘</span></div>’.
$comment->text;
}

// самите коментари
foreach ($comments as $comment) {
print
‘<div style=“overflow:hidden; margin: 5px; border-bottom:1px solid #CAC5BF; background:#ffffff; padding:5px;“>’.
pr_comment($comment, $profiles_by_id).
‘</div>’;
// print each reply
if (!empty($replies_by_target[$comment->post_fbid])) {
foreach ($replies_by_target[$comment->post_fbid] as $reply) {
print
‘<div style=“overflow:hidden; margin: 5px 5px 5px 50px; background:#E2DFDA; padding:5px;“>’.
pr_comment($reply, $profiles_by_id).
‘</div>’;
}
}
}
?>

За ползвателите на WordPress – може да поставите този код най-долу в comments.php от вашия theme

За автора 

Казвам се Иво Илиев. Практикувам в сферата на дигиталния маркетинг и комуникации от 2002г. Управител съм в дигитална агенция "InteractAGE", където аз и екипът ми имаме удоволствието да работим над разнообразни кампании за наши международни и регионални клиенти.
Благодаря ти, за отделеното време над тази статия! Тя е написана за теб и всички читатели на блога с идеята да е от полза. Ще съм ти благодарен, ако решиш да я подкрепиш като я споделиш в социалните мрежи. За мен е важно да чуя твоето мнение по темата от статията, и ще се радвам да го споделиш в коментарите по-долу.
Author: Ivo Iliev

Кратка връзка към публикацията:

Facebook Comments

2 коментара

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *