Как вывести количество фолловеров в Twitter в виде текста

Самый простой способ вывести количество фолловеров для вашего Twitter-аккаунта — это использовать официальную кнопку «Читать» от Twitter. Однако, если вы не хотите замедлять свой сайт, подгружая дополнительный скрипт с хоста twitter, или же вы создаете в теме что-то «свое» и нужно вывести количество фолловеров в виде текста, а не кнопки? Тогда сегодняшняя статья подойдет вам как нельзя кстати. В ней мы расскажем как вывести количество фолловеров в вашем твиттере в виде текста на вашем сайте на WordPress.

Задаётесь вопросом, как это сделать? Во-первых, необходимо создать Twitter App, чтобы полноценно использовать Twitter API для того, чтобы «вытянуть» количество фолловеров. Также мы будем использовать кеш для улучшения производительности, а затем выведем цифру на сайте. Готовы? Начали!

Первое, что делаем, это создаем приложение Twitter для сайта, на котором вы хотите отобразить счетчик фолловеров. Переходим на сайт Twitter Developers и логинимся под своим Twitter-аккаунтом. После входа создаем новое приложение.

creatingtwitterapp[1]

В следующей форме укажите имя для приложение (может быть каким угодно), в идеале взять название своего сайта. Укажите описание для приложения (можно указать то же описание, что и у вашего блога, или любое другое). В поле website введите ссылку на свой проект, например http://wpincode.com.

Введите ту же ссылку в поле Callback URL. После заполнения формы жмем кнопку Create your Twitter application внизу страницы.

Это действие создать новое Twitter-приложение для вашего пользования. На следующей странице кликните на кнопку Create my access token. Вы увидите уведомление о том, что ваш токен для авторизации был создан.

На странице вашего Twitter-приложения нам понадобится только Consumer Key и Consumer Secret для следующего шага.

Скопируйте следующий код в файл functions.php вашей темы или в плагин для сайта WordPress. Замените Consumer Key и Consumer Secret на те, что вы получили выше.

function getTwitterFollowers($screenName = 'advdevise')
{
    // несколько переменных
    $consumerKey = 'ВАШ_CONSUMER_KEY';
    $consumerSecret = 'ВАШ_CONSUMER_SECRET';
    $token = get_option('cfTwitterToken');
 
    // получаем количество фолловеров из кеша
    $numberOfFollowers = get_transient('cfTwitterFollowers');
 
    // версия кеша не существует или истекла
    if (false === $numberOfFollowers) {
        // получаем аутентификатора, если еще нет ни одного
        if(!$token) {
            // подготавливаем полномочия
            $credentials = $consumerKey . ':' . $consumerSecret;
            $toSend = base64_encode($credentials);
 
            // аргументы http post
            $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) {
                // Сохраняем токен в таблицу wp_options 
                update_option('cfTwitterToken', $keys->access_token);
                $token = $keys->access_token;
            }
        }

        $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 {
            // получаем старое значение и прерываемся
            $numberOfFollowers = get_option('cfNumberOfFollowers');
            // раскомментируем нижеследующее для отладки
            //die($response->get_error_message());
        }
 
        // кеш на час
        set_transient('cfTwitterFollowers', $numberOfFollowers, 1*60*60);
        update_option('cfNumberOfFollowers', $numberOfFollowers);
    }
 
    return $numberOfFollowers;
}

Теперь добавляем строку кода в шаблон вашей темы в то место, где вы хотите вывести количество фоловеров в твиттере. Как вариант, это могут быть sidebar.php, header.php или любое другое место.

<?php 
echo getTwitterFollowers('ваше_Имя_пользователя');
 ?>

Вот и все. Все готово. Надеемся, что эта статья помогла вам вывести количество фолловеров в Twitter в виде текста в WordPress.

VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)

Об авторе ADv

Занимаюсь разработкой сайтов и магазинов на WordPress. Оказываю платные помощь и консультации. Skype: advokat_b
  • Татьяна

    Почему-то ничего не выводится, а если подставить имя пользователя в урл https://api.twitter.com/1.1/users/show.json?screen_name=… то выдает ошибку. Не подскажите в чем дело?

    • ADv

      Вероятно, твиттер снова произвел изменения в своем API

  • Seostager

    Спасибо за скрипт. только сейчас заметил, что старый скрипт из за смены api перестал работать. неплохо было бы добавить склонение слова фолловер в зависимости от их числа (фолловера, фолловеров, фолловер)

  • Дмитрий

    Спасибо!

Scroll To Top