Получаем количество Twitter последователей на чистом PHP

Сегодня мы посмотрим на простую реализацию скрипта с помощью которого можно получить число ваших последователей на Twitter.

Можете пользоваться данным скриптом на своё усмотрение.

Во-первых, создаём файл Cache.php и копируем туда код:
/**
* @desc Class реализация кэш функциональности
*/
class Cache
{
    const PATH_TO_CACHE = 'cache/';
 
    /**
    * @desc считать данные из кэша
    * @param string $fileName - название кэш файла
    * @return bool/string
    * Usage: Cache::read('fileName.extension')
    */
    function read($fileName)
    {
        $fileName = self::PATH_TO_CACHE . $fileName;
        if (file_exists($fileName)) {
            $handle = fopen($fileName, 'rb');
            $data = fread($handle, filesize($fileName));
            $data = unserialize($data);
            // проверка истечения срока жизни кэша
            if (time() > $data[0]) {
                // it expired, delete the file
                @unlink($fileName);
                return false;
            }
            fclose($handle);
            // если кэш валиден, возвращаем данные
            return $data[1];
        } else {
            return false;
        }
    }
 
    /**
    * @desc записать кэш типа key => value
    * @param string $fileName - название кэш файла (ключ)
    * @param mixed $variable - значение
    * @param number $ttl - время жизни файла
    * @return void
    * Usage: Cache::write('fileName.extension', value)
    */
    function write($fileName, $variable, $ttl)
    {
        $fileName = self::PATH_TO_CACHE . $fileName;
        $handle = fopen($fileName, 'a');
        fwrite($handle, serialize(array(time() + $ttl, $variable)));
        fclose($handle);
    }
 
    /**
    * @desc удаление кэш файла
    * @param string $fileName - название кэш файла (ключ)
    * @return void
    * Usage: Cache::delete('fileName.extension')
    */
    function delete($fileName)
    {
        $fileName = self::PATH_TO_CACHE . $fileName;
        @unlink($fileName);
    }
 
}

Данный класс будет использоваться для создания и считки кэша. Так же в классе есть такой параметр как время жизни кэша, так что вы можете быть спокойны о “свежести” информации.

Для работы с Twitter, я заюзаю библиотеку, которую нашёл на Github. Создайте файл TwitterAPIExchange.php и вставьте следующий код:
function getTwitterFollowers($screenName = 'codeforest')
{
    require_once('Cache.php');
    require_once('TwitterAPIExchange.php');
    // данную информаци можно взять при создании Twitter приложения на  http://dev.twitter.com/apps
    $settings = array(
        'oauth_access_token' => "YOUR_OAUTH_ACCESS_TOKEN",
        'oauth_access_token_secret' => "YOUR_OAUTH_ACCESS_TOKEN_SECRET",
        'consumer_key' => "YOUR_CONSUMER_KEY",
        'consumer_secret' => "YOUR_CONSUMER_SECRET"
    );
 
    $cache = new Cache();
 
    // получаем последователей из кэша
    $numberOfFollowers = $cache->read('cfTwitterFollowers.cache');
    // если кэша нет или время его жизни истекло
    if (false === $numberOfFollowers) {
        // создаём запрос
        $apiUrl = "https://api.twitter.com/1.1/users/show.json";
        $requestMethod = 'GET';
        $getField = '?screen_name=' . $screenName;
 
        $twitter = new TwitterAPIExchange($settings);
        $response = $twitter->setGetfield($getField)
             ->buildOauth($apiUrl, $requestMethod)
             ->performRequest();
 
        $followers = json_decode($response);
        $numberOfFollowers = $followers->followers_count;
 
        // кэшируем информацию на час
        $cache->write('cfTwitterFollowers.cache', $numberOfFollowers, 1*60*60);
    }
 
    return $numberOfFollowers;
}

Теперь, там где вам нужно внедрить функционал воспользуйтесь следующем кодом:
// подключаем файлы!
require_once(getTwitterFollowers.php);
// получаем инфу из Twitter
echo getTwitterFollowers('codeforest');

Теги:
Twitter
Добавлено: 07 Мая 2018 06:40:13 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...