TwitterAPIを使って検索してみます。
MOTOOLOGUEさんを参考にしました。
- カスターマキー、アクセストークン等を取得してください。参考
- 受け取る値はjson形式なので「Jsphonをcodereposにアップロードしました。」を参考にしてJsphonをインストール。
- HTTP::Requestもpearでインストール
<?php require_once("HTTP/Request.php"); require_once("Jsphon/Decoder.php"); //URLエンコード RFC3986版 function _rawurlencode($str) { $str = rawurlencode($str); $str = str_replace('+', ' ', $str); $str = str_replace('%7E', '~', $str); return $str; } //hash_hmac('sha1', $data, $key, true)の代わり function _hmacsha1($key, $data) { $blocksize = 64; $hashfunc = 'sha1'; if (strlen($key) > $blocksize) $key = pack('H*', $hashfunc($key)); $key = str_pad($key, $blocksize, chr(0x00)); $ipad = str_repeat(chr(0x36), $blocksize); $opad = str_repeat(chr(0x5c), $blocksize); $hmac = pack('H*', $hashfunc(($key^$opad). pack('H*', $hashfunc(($key^$ipad). $data)))); return $hmac; } //投げる変数類設定 $request_param = array( //〜search.json?q=検索語 'q' => 検索語, 'oauth_consumer_key' => カスタマーキー, 'oauth_nonce' => md5(uniqid(mt_rand(), TRUE)), 'oauth_signature_method' => 'HMAC-SHA1', 'oauth_token' => アクセストークン, 'oauth_timestamp' => time(), 'oauth_version'=> '1.0', ); //変数名でソート $request_sorted = $request_param; ksort($request_sorted); //Sigunatureのベーステキストを作成 $request_queries = array(); foreach ($request_sorted as $k => $v) $request_queries[] = $k. '='._rawurlencode($v); $request_query = implode('&', $request_queries); //それぞれをURLエンコードして接続 この場合GET $twtr_signature_base = "GET&"; $twtr_signature_base .= _rawurlencode($request_uri). '&'; $twtr_signature_base .= _rawurlencode($request_query); //Signatureの作成 $twtr_keys = _rawurlencode(カスタマーシークレット). '&'. _rawurlencode(アクセスシークレット); $request_param['oauth_signature'] =base64_encode(_hmacsha1($twtr_keys,$twtr_signature_base)); //HTTPヘッダーに追加するAuthorizationパラメータ作成 $request_headers = array(); foreach ($request_param as $k => $v) $request_headers[] = $k. '="'._rawurlencode($v). '"'; unset($request_headers[0]); //最初に定義したパラメータリストからqのみ撤去 $request_header = 'OAuth realm="'. $request_domain. '", '. implode(', ', $request_headers); $url = 'http://search.twitter.com/search.json'; $request = &new HTTP_Request($url); $request->setMethod(HTTP_REQUEST_METHOD_GET); $request->addHeader('Authorization', $request_header); $request->addQueryString("q", 検索語) ; $request->sendRequest(); $json = new Jsphon_Decoder(); $respo = $json->decode($request->getResponseBody());