TwitterAPIでStremingAPIを使用してつぶやきをリストで抽出
StremingAPI
なんかつぶやきをリアルタイムで取得する機能とのこと
ずらずらーと流れてくるのでなんかDBに格納して分析にするのかな…
やり方
開発者サイトへ移動して取得
https://dev.twitter.com/へ移動して開発者のキーを取得する
ソース
<?php $consumer_key = 'Application settingsのAPI key'; $consumer_secret = 'Application settingsのAPI secret'; $oauth_token = 'Your access tokenのAccess token'; $oauth_token_secret = 'Your access tokenのAccess token secret'; //$url = 'https://userstream.twitter.com/1.1/user.json'; $url = 'https://stream.twitter.com/1.1/statuses/sample.json'; $method = 'GET'; // パラメータ $oauth_parameters = array( 'oauth_consumer_key' => $consumer_key, 'oauth_nonce' => microtime(), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_timestamp' => time(), 'oauth_token' => $oauth_token, 'oauth_version' => '1.0', ); // 署名を作る $a = $oauth_parameters; ksort($a); $base_string = implode('&', array( rawurlencode($method), rawurlencode($url), rawurlencode(http_build_query($a, '', '&', PHP_QUERY_RFC3986)) )); $key = implode('&', array(rawurlencode($consumer_secret), rawurlencode($oauth_token_secret))); $oauth_parameters['oauth_signature'] = base64_encode(hash_hmac('sha1', $base_string, $key, true)); // 接続&データ取得 // $fp = fsockopen("ssl://userstream.twitter.com", 443); $fp = fsockopen("ssl://stream.twitter.com", 443); if ($fp) { fwrite($fp, "GET " . $url . " HTTP/1.1\r\n" // . "Host: userstream.twitter.com\r\n" . "Host: stream.twitter.com\r\n" . 'Authorization: OAuth ' . http_build_query($oauth_parameters, '', ',', PHP_QUERY_RFC3986) . "\r\n" . "\r\n"); while (!feof($fp)) { $res = fgets($fp); $res = json_decode($res, true); //表示 print_r($res); } fclose($fp); }
結果