Pobieranie tweet’ów z Twittera przez CI

Dawno, dawno temu zadanie było to bardzo proste. Wystarczyło pobrać Tweety z danego URLa – były serwowane jako feed JSON albo XML. Teraz niestety wszystko jest odrobinę bardziej skomplikowane.

Po pierwsze musisz wygenerować sobie kilka magicznych ustawień związanych z autoryzacją OAuth – którą Twitter jakiś czas temu wprowadził, żeby utrudnić życie biednym developerem. Jak to zrobić – udać się na stronę dev.twitter.com i klikać tak długo aż uzyskasz „Consumer key”, „Consumer secret” a zaraz potem „Access token”, „Access token secret”. Tyle potrzebujemy ze strony Twittera.

Następnym krokiem będzie pobranie biblioteki twitter-api-php. Biblioteka ta może działać niezależnie, ale my wrzucimy ją do foldera application/libraries. Potem można z niej korzystać już normalnie w kontrolerach.

Ładujemy bibliotekę i wstawiamy do niej dane uzyskane wcześniej z Twittera

require_once APPPATH . 'libraries/TwitterAPIExchange.php';
$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"
);

Teraz możesz wybrać sobie dowolny endpoint ze strony Tweetera – https://dev.twitter.com/docs/api/1.1 i np. pobrać listę tweetów danego usera:

	
    $url = 'https://api.twitter.com/1.1/statuses/user_timeline.json';
    $getfield = '?screen_name=slavomirj';
    $requestMethod = 'GET';

    $twitter = new TwitterAPIExchange($settings);
    $tweets = $twitter->setGetfield($getfield)->buildOauth($url, $requestMethod)
        ->performRequest();

Wynik zwracany jest jako string, więc warto go przekonwertować do odpowiedniego formatu za pomocą

$this->data['tweets'] = json_decode($tweets);

Dodaj komentarz

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.