flurin-d
3/31/2016 - 8:23 AM

shows tweets via 1.1 API

shows tweets via 1.1 API

function showtweets($amount, $api_user, $api_key, $api_secret) {
	// usage: showtweets(3, 'flurinduerst', 'QIhs6TxhgiiMTu4Xt1ThZey9t', 'JWAObMVG2XLO4zlPZAOcX36m0lWO34e8uq4YzKWPo08M2M8c4n')
	// CONFIG
	// get account data
	$username = $api_user;
    $key      = $api_key;
    $secret   = $api_secret;
    $quest    = "https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=".urlencode($username);
    $tokenUrl = "https://api.twitter.com/oauth2/token";
	// create auth key
    $auth     = base64_encode(urlencode($key).':'.urlencode($secret));
	// GET TOKEN
	// send request to torkenUrl
    $getToken = curl_init();
    curl_setopt($getToken, CURLOPT_URL, $tokenUrl);
    curl_setopt($getToken, CURLOPT_POST, 1);
    curl_setopt($getToken, CURLOPT_HTTPHEADER, array('Authorization: Basic ' . $auth));
	// get BearerToken
    curl_setopt($getToken, CURLOPT_POSTFIELDS, "grant_type=client_credentials");
    curl_setopt($getToken, CURLOPT_RETURNTRANSFER, 1);
	// extract BearerToken
    $token = json_decode(curl_exec($getToken));
    $token = $token->access_token;
    curl_close($getToken);
	// GET TWEETS
	// send request to torkenUrl using BearerToken
	$curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $quest);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $token));
    $result = curl_exec($curl);
    curl_close($curl);
    $output = json_decode($result);
	$avatar_url = $output[0]->user->profile_image_url;
	// OUTPUT
	if (is_array($output) && count($output) > 0) :
			$i = 1;
			foreach($output as $tweet) : ?>
				<p <?= ($i == 1 ? 'class="first"' : ''); ?>>
					<img src="<?= $avatar_url ?>">
					<?= $tweet->text; ?>
		            <br>
					<time datetime="<?= $tweet->created_at; ?>"><?= date('d. F H:i', strtotime($tweet->created_at)); ?> Uhr</time>
		        </p>
				<? if(++$i > $amount) break;
			endforeach;
    endif;
}