Счетчик фолловеров и твит лента без плагинов

Счетчик фолловеров и твит лента без плагинов
5 (100%) 5 votes

Итак, свершилось! В июне неугомонный Twitter нам всем подложил здоровенную свинью – отказался от API версии 1.0, из-за чего большинство его приложений на сайтах приказали долго жить: количество фолловеров не выводится, лента последних твитов тоже. Наступила эра геморроя API 1.1.

Но народу ж хочется, чтобы все было: и чтобы лента твитов радовала глаз и чтобы количеством подписчиков можно было блеснуть...

Как оказалось, все решаемо, если есть желание решать

Твит лента на блог

С лентой твитов все просто. Twitter снизошел до простых смертных и милостиво добавил виджет, позволяющий ее выводить.

Чтобы ее получить, достаточно зайти в Настройки своего аккаунта, выбрать в Меню –> Виджеты и нажать кнопку «Создать новый». Поскольку он у него пока один, глаза не разбегутся.

В настройках виджета твит ленты все тоже очень просто. Вы решаете:

  • Какую именно ленту будете выводить: свою или Ваших избранников
  • Включить или выключить ответы
  • Включить или выключить фотографии
  • Какой будет высота виджета
  • Какого цвета будут ссылки и т.п. мелочи

После создания виджета, Вам предложат код, который Вы сможете вставить в текстовый виджет на Вашем блоге, и у Вас на блоге будет выводиться твит лента.

Все просто.

А вот чтобы похвастаться количеством фолловеров, придется потрудиться.

Счетчик фолловеров без плагинов

Перво-наперво, нужно перейти на сайт разработчиков Twitter приложений https://dev.twitter.com/ и авторизоваться на нем, используя свои данные входа в Twitter.

Вторым шагом подключить Ваш сайт в разделе My applications https://dev.twitter.com/apps, нажав на кнопку Create a new application

В открывшемся окне заполнить данные на Ваш сайт, внизу поставить галочку, что Вы согласны вести себя прилично и не нарушать правила дорожного движения, ввести цифры и буквы с капчи и нажать на кнопку Create your Twitter application

Сделали? Отлично!

Тут же в настройках переходим на вкладку Details. Нажимаем внизу на кнопку Create my access token для генерации маркера доступа.

Теперь скопируйте и сохраните данные, а именно:

  • Consumer key
  • Consumer secret
  • Access token
  • Access token secret.

Два последних Вам пригодятся, если Вы захотите от Twitter’а большей взаимности. А для наших целей достаточно первых двух.

Первую половину работы по добавлению счетчика фолловеров на блог мы проделали - основные данные получили.

Следуем далее.

Третий шаг.

Теперь в файл function.php нам нужно вставить следующий код:


function getTwitterFollowers($screenName = 'ВАШ_TWITTER_ЛОГИН')
{
// маркеры данных
$consumerKey = 'ВАШ Consumer key';
$consumerSecret = 'ВАШ Consumer secret';
$token = get_option('cfTwitterToken');
// получить число фолловеров из кэша
 
$numberOfFollowers = get_transient('cfTwitterFollowers');
 
// cache version does not exist or expired
 
if (false === $numberOfFollowers) {
 
// getting new auth bearer only if we don't have one
 
if(!$token) {
 
// preparing credentials
 
$credentials = $consumerKey . ':' . $consumerSecret;
 
$toSend = base64_encode($credentials);
 
// http post arguments
 
$args = array(
 
'method' => 'POST',
'httpversion' => '1.1',
'blocking' => true,
'headers' => array(
'Authorization' => 'Basic ' . $toSend,
'Content-Type' => 'application/x-www-form-urlencoded;charset=UTF-8'
),
 
'body' => array( 'grant_type' => 'client_credentials' )
);
 
add_filter('https_ssl_verify', '__return_false');
$response = wp_remote_post('https://api.twitter.com/oauth2/token', $args);
$keys = json_decode(wp_remote_retrieve_body($response));
if($keys) {
 
// saving token to wp_options table
 
update_option('cfTwitterToken', $keys->access_token);
$token = $keys->access_token;
}
}
 
// we have bearer token wether we obtained it from API or from options
 
$args = array(
'httpversion' => '1.1',
'blocking' => true,
'headers' => array(
'Authorization' => "Bearer $token"
)
);
 
add_filter('https_ssl_verify', '__return_false');
$api_url = "https://api.twitter.com/1.1/users/show.json?screen_name=$screenName";
$response = wp_remote_get($api_url, $args);
if (!is_wp_error($response)) {
$followers = json_decode(wp_remote_retrieve_body($response));
$numberOfFollowers = $followers->followers_count;
} else {
 
// get old value and break
 
$numberOfFollowers = get_option('cfNumberOfFollowers');
 
// uncomment below to debug
 
//die($response->get_error_message());
}
 
// cache for an hour
 
set_transient('cfTwitterFollowers', $numberOfFollowers, 1*60*60);
update_option('cfNumberOfFollowers', $numberOfFollowers);
}
return $numberOfFollowers;
}

Внимание!
1. В коде нужно заменить слова 'ВАШ_TWITTER_ЛОГИН' на Ваш логин, 'ВАШ Consumer key' на полученный ключ, 'ВАШ Consumer secret' соответственно тоже.
2. Код в файл function.php вставляется ДО замыкающего ?>

Последним шагом мы выведем счетчик фолловеров на экран. Этот код нужно вставить туда, где Вы хотите видеть численность Ваших Twitter последователей

<?php echo getTwitterFollowers(' ВАШ_TWITTER_ЛОГИН'); ?>

Единственный нюанс - Вы можете его использовать только на том блоге, который указали.

Вот и все! Немного занудно, но решаемо и без всяких скачиваний дополнительных файлов и установки дополнительных плагинов у Вас есть и твит лента и счетчик фолловеров на Вашем блоге.

Осталось только привести его в Божий вид, используя css

Лола Пирхал

Сертифицированный коуч, бизнес-тренер, интернет-предприниматель, веб-разработчик

+38 067 7923605 KartaUspeha.ru

QR:  '.get_the_title().'

Что Вы об этом думаете?

Подарок

Оставьте Ваш первый комментарий и получите замечательный подарок!


3 комментария

  • Так вот, почему у меня перестала отображаться твит-лента....(
    А я на плагин грешила, переустанавливала, пробовала другие и без толку.

    Вообще пока убрала этот виджет.

    • Я тоже потеряла, было, твит ленту и начала искать причину. И хоть нашла ответ, поставить опять все эти социальные примочки нет времени, да и желания особого. Хотя твит ленту надо бы

  • Функции через плагины удобней делать, если ошибка в плагине будет, ничего страшного, плагин отрубится, а если в function.php то уже сайт может отрубится

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *