PHPでウェブの世界と繋がろう!
menu
ホーム > PHP と Twitter > Twitter API > Search(検索) > つぶやきを検索します search

つぶやきを検索します search

Pocket

Twitter API statuses/update

API Resource
GET search
概要
 指定内容でTwitter.comの「つぶやき」を検索してステータス情報(各つぶやきとそれに関連する諸々の情報)を返します。

POINT
パラメーター q で指定する検索ワードは、 urlencode() 関数でURLエンコードします。また、and検索 や or検索 も指定できます。

  • and 検索は、検索ワードを「+」で繋ぐ「'q' => 'a+b'」a と b 両方ある場合に取得
  • or 検索は、検索ワードを「+OR+」で繋ぐ「'q' => 'a+OR+b'」a か b どちらかある場合に取得
  • not 検索は、除外したい検索ワードの前に「-」をつける 「'q' => '-a'」a以外は取得
  • フレーズ検索は、検索ワードを「"」で囲む「'q' => '"word"'」wordという単語は取得

Resource URL(リソースURL)
http://search.twitter.com/search.format
Resource Information(リソース情報)
Rate Limited(制限) Yes(あり)
Requires Authentication(認証) No(なし)
Response Formats(フォーマット) json atom
HTTP Methods(HTTPメソッド) GET
Parameters(パラメーター)

検索クエリの言語を指定します。

ページ番号を指定します。これはrppパラメータで指定した件数を1ページあたりの件数とした場合に、「検索結果の総件数/rpp件数」で「総ページ件数」となり、何ページ目かを指定します。検索の最大取得件数は1500件です。rppの最大数は100件です。

検索結果の1ページ分の件数を指定します。最大100件まで指定出来ます。

q
※必須
サンプル値:@noradio 検索内容を指定します。指定内容はURLエンコードする必要があります。通常では最大15件返します。URLエンコードした状態で140文字以内で指定する必要があります。
callback
※オプション
JSON形式の場合にのみ利用できます。コールバック名を指定します。指定した場合、指定された名前のコールバック名でJSONP形式を得ることが出来ます。
geocode
※オプション
サンプル値:37.781157,-122.398720,1mi 経度、緯度、半径を指定して、指定された経度緯度を中心に指定された半径の範囲内にあるユーザーつぶやきを返します。半径のパラメータはマイル[mi]/キロメートル[km]の単位を指定します。

geocodeパラメータの検索対象となる位置は、Geotaggingに対応したAPI経由で発信されたつぶやきが優先されます。Twitterユーザのプロフィールに設定された位置情報にフォールバックします。

lang
※オプション
ISO 639-1コードで指定された特定の言語を検索対象とします。
local
※オプション
サンプル値:ja
page
※オプション
サンプル値:10
result_type
※必須
サンプル値:mixed, recent, popular 検索結果を受信する種類を指定します。タイプは3つあります。指定しない場合は「mixed」となります。

  • mixed:「新しいつぶやき」と「評価の高いつぶやき」の両方を適切に検索結果として返します。
  • recent:「新しいつぶやき」を優先的に検索結果として返します。
  • popular:「評価の高いつぶやき」を優先的に検索結果として返します。
rpp
※オプション
サンプル値:100
show_user
※オプション
サンプル値:true trueにした場合つぶやきの先頭に「:」を付加します。
until
※オプション
サンプル値:2010-03-28 指定された日付前に生成されたつぶやきを返します。日付はYYYY-MM-DD形式で指定する必要があります。
since_id
※オプション
サンプル値:12345 指定されたIDより大きいID、つまり新しいIDのステータス情報を返します。APIを通してアクセス可能なidには制限があります。制限より小さいid、つまり過去のidを指定した場合は、利用可能な最も古いidが強制されます。
include_entities
※オプション
サンプル値:true このパラメータを true または 1 にすると、ステータス情報に entities情報が含まれるようになります。entities情報はそのステータス情報に関連するuser_mentions, urls, hashtagsなどのメタデータです。entitiesの詳細はこちらを参照下さい。
サンプルコード
POINT
以下のサンプルコードを実行するにはOAuth接続が必要です。こちらのページからOAuth接続の設定を行って下さい。

– サンプル Click Here ! –

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta name="robots" content="index">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TRYPHP! Twitter API つぶやきを検索します。GET search</title>
</head>
<body>



<?php
#########################################
### 初期設定
//twitteroauth.phpをインクルードします。ファイルへのパスは環境に合わせて記述下さい。
require_once("./twitteroauth.php");

//Consumer keyの値をTwitterAPI開発者ページでご確認下さい。
$consumerKey = "***************";
//Consumer secretの値を格納
$consumerSecret = "***********************************";
//Access Tokenの値を格納
$accessToken = "***********************************";
//Access Token Secretの値を格納
$accessTokenSecret = "***********************************";

//OAuthオブジェクトを生成する
$twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
?>



<?php
#########################################
### ページ説明
?>

<h1>Twitter API つぶやきを検索します。GET search</h1>
<h3>http://search.twitter.com/search.xml</h3>
<!-- 説明ページurl -->
<h3><a href="http://www.tryphp.net/2012/01/17/phpapptwitter-search/">→説明はこちら</a></h3>
<hr/>



<?php
#########################################
### 取得したデータを展開
?>

<h2>取得したデータを展開</h2>
<div style="background-color:#f8f8f8;margin:20px; padding:20px; border:solid #cccccc 1px;">

<!-- // =========================== ここから =========================== -->

<?php
//検索するワード指定
$sWordA = urlencode('東京');
$sWordB = urlencode('神奈川');
$sQuery = $sWordA.'+'.$sWordB;

//and 検索は、検索ワードを「+」で繋ぐ「'q' => 'a+b'」a と b 両方ある場合に取得
//or 検索は、検索ワードを「+OR+」で繋ぐ「'q' => 'a+OR+b'」a か b どちらかある場合に取得
//not 検索は、除外したい検索ワードの前に「-」をつける 「'q' => '-a'」a以外は取得
//フレーズ検索は、検索ワードを「"」で囲む「'q' => '"word"'」wordという単語は取得

//API実行データ取得
$vRequest = $twObj->OAuthRequest("http://search.twitter.com/search.json","GET",array('q' => $sQuery, 'lang' => 'ja'));

//Jsonデータをオブジェクトに変更
$oObj=json_decode($vRequest);

//オブジェクトを展開
if(isset($oObj->{'error'}) && $oObj->{'error'} != ''){
    echo "取得に失敗しました。<br/>\n";
    echo "パラメーターの指定を確認して下さい。<br/>\n";
    echo "エラーメッセージ:".$oObj->{'error'}."<br/>\n";
}else{

    ### 基本情報取得
    $max_id =                $oObj->{'max_id'};
    $max_id_str =            $oObj->{'max_id_str'};
    $since_id =              $oObj->{'since_id'};
    $since_id_str =          $oObj->{'since_id_str'};
    $refresh_url =           $oObj->{'refresh_url'};
    $next_page =             $oObj->{'next_page'};

    echo '基本情報';
    echo 'max_id:'.$max_id.'<br/>';
    echo 'max_id_str:'.$max_id_str.'<br/>';
    echo 'since_id:'.$since_id.'<br/>';
    echo 'since_id_str:'.$since_id_str.'<br/>';
    echo 'refresh_url:'.$refresh_url.'<br/>';
    echo 'next_page:'.$next_page.'<br/>';

    //オブジェクトを展開
    $oObj = $oObj->{'results'};
    for($i_tweet=0; $i_tweet<sizeof($oObj); $i_tweet++){

        $tweet_id =                 (string)$oObj&#91;$i_tweet&#93;->{'id'};
        $id_str =                   (string)$oObj[$i_tweet]->{'id_str'};
        $text=                      $oObj[$i_tweet]->{'text'};
        $screen_name=               $oObj[$i_tweet]->{'from_user'};
        $profile_image_url =        $oObj[$i_tweet]->{'profile_image_url'};


        $created_at =               $oObj[$i_tweet]->{'created_at'};
        $strtotime=                 strtotime($created_at);// + 9*60*60; // 時差の9時間分足す
        $created_at =               date('n月j日 G:i', $strtotime);
        $created_at2 =              date('YmdHis', $strtotime);
        $created_at3 =              date('Y-m-d H:i:s', $strtotime);

        echo 
        '<h4>'.$screen_name.'さんのつぶやき</h4>'.
        'tweet_id:'.$tweet_id
        .'<br/>'.
        'id_str:'.$id_str
        .'<br/>'.
        'screen_name:'.$screen_name
        .'<br/>'.
        'profile_image_url:'.$profile_image_url
        .'<br/>'.
        'text:'.$text
        .'<br/>'.
        'created_at3:'.$created_at3
        .'<br/>'
        ;

    }//end for
}
?>

<!-- =========================== ここまで =========================== // -->
</div>
<hr/>



<?php
#########################################
### 取得したオブジェクトの内容
?>

<h2>取得したオブジェクトの内容</h2>
[PHP ruler="true" toolbar="true"]
<?php
var_dump($oObj);
?>
<\/pre>
<hr/>



</body>
</html>

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2012年1月17日
最終更新日:2012年07月17日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpapptwitter-search/trackback/