Автоматически загружать RSS-каналы в Twitter и Facebook

Как и было обещано, представляем PHP-скрипт, позволяющий автоматически загружать информацию, содержащуюся в RSS-канале, в социальные сети Twitter и Facebook.

Прежде чем продолжить, полезно внимательно перечитать содержание следующих двух статей:

— Публикация материала на странице Facebook с вашего сайта
— Взаимодействие с Twitter с использованием протокола Oauth

На этот раз наша цель — изменить файл twitter_oauth.php, чтобы он мог читать последние RSS-каналы и публиковать их как в Twitter, так и в Facebook.

Для управления отправкой информации на страницы социальных сетей и полученными откликами используется библиотека libcurl. Это позволяет вам подключаться и общаться с различными серверами, используя несколько разных протоколов. Поэтому крайне важно, чтобы ваш веб-сервер поддерживал libcurl: если соответствующее расширение не включено, необходимо продолжить редактирование файла PHP.INI (перед строкой extension=php_curl.dll не должно быть знака точки и запятой ).

На веб-сервере в том же каталоге вам нужно будет извлечь содержимое сжатого файла, содержащего «Клиентскую библиотеку» Facebook для PHP 5.x, сохранить подпапку twitteroauth, содержащую файлы OAuth.php и twitteroauth.php, два файла: файл twitter_login .php и twitter_oauth.php, и, наконец, файл rss_php.php (содержимое в этом архиве почтовый индекс).

Затем попробуйте отредактировать файл twitter_oauth.php следующим образом:

требуют(«twitteroauth/twitteroauth.php»);
require_once(‘facebook.php’);
require_once(«rss_php.php»);
сеанс_старт();

если(!пусто($_GET[‘oauth_verifier’]) && !пусто($_SESSION[‘oauth_token’]) && !пусто($_SESSION[‘oauth_token_secret’])){

// Мгновенный TwitterOAuth с двумя новыми параметрами, полученными из twitter_login.php
$twitteroauth = новый TwitterOAuth(‘CONSUMER_KEY’, ‘CONSUMER_SECRET’, $_SESSION[‘oauth_token’], $_СЕССИЯ[‘oauth_token_secret’]);
// Запросить токен
$access_token = $twitteroauth->getAccessToken($_GET[‘oauth_verifier’]);
$_СЕССИЯ[‘access_token’] = $access_token;

// Данные аутентификации Facebook
$target_id = ‘ID_PAGINA’;
$api_key = ‘API_KEY’;
$app_secret=»APP_SECRET»;
$session_key = ‘SESSION_KEY’;

// инициализация Facebook
$facebook = новый Facebook($api_key, $app_secret);
$facebook->api_client->session_key = $session_key;
$facebook->api_client->expires = 0;
$сообщение=»»;

$rss = новый rss_php;
// указываем адрес RSS-канала
$rss->load(‘http://www.nomedelsito.abc/feed_rss.php’);
$items = $rss->getItems();
$html=»»;
$идентификатор=»;
// указываем директорию на сервере с правами на запись
$thefile = «rss.txt»;

если (файл_существует($файл)) {
$id_stop=file_get_contents($thefile);
}
иначе $id_stop=»;

foreach($items as $index => $item) {

$ ссылка = strtolower ($ пункт[‘link’]);
$id_corr=parse_url($ссылка, PHP_URL_QUERY);

если ($id_corr==$id_stop) перерыв;

если ($id==») {
$openedfile = fopen($thefile, «w»);
fwrite($openedfile, $id_corr);
fclose ($ открытый файл);
$id=$id_corr;
}

// публикация в твиттере
$twitteroauth->post(‘status/update’, array(‘status’ => $item[‘title’] .’ — ‘. str_replace(‘www.ilsoftware.it/news’, ‘ilsw.it/articolì, $link) ));

// публикация в Facebook
если (strrpos($link, «querydl.asp»)==0) {
$attachment = массив(‘имя’ => $item[‘title’], ‘href’ => $ссылка, ‘описание’ => $item[‘description’]);
$action_links = ноль;

$facebook->api_client->stream_publish($message, $attachment, $action_links, null, $target_id);
}

}
echo ‘
Operazione completata.

Ricarica‘;

} еще {
header(‘Расположение: twitter_login.php’);
}
?>

Вместо CONSUMER_KEY и CONSUMER_SECRET необходимо указать буквенно-цифровые строки, отмеченные при регистрации нового приложения в Twitter.

Значение, присвоенное переменным $target_id, $api_key, $app_secret и $session_key, придется скорректировать на основе данных, записанных при регистрации вашего приложения в Facebook.

В частности, $target_id должен быть связан с числовым идентификатором страницы, опубликованной в Facebook, а $session_key — с ранее полученным идентификатором сессии.

В переписке с //постингом в Twitter и //постингом в Facebook строками можно активировать, соответственно, проверку длины отправляемой строки символов (чтобы она не превышала 140 символов, необходимых для размещения контента в Twitter) и «загрузку» изображения в Facebook (см. Эта страница на официальном сайте, посвященном разработчикам).

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован.