Created
June 2, 2016 09:09
-
-
Save ikarashikei/e2af9685a597c59fd5754a7a17df7634 to your computer and use it in GitHub Desktop.
poke_twit_get.php
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/************************************************** | |
ソーシャルリスニングっぽいことをTwitterでやってみるツール | |
2016/06/02 K.Ikarashi | |
【目的】 | |
キーワード「ポケットティッシュ」を含むツイートを収集する | |
**************************************************/ | |
/***** 各種設定 *****/ | |
// 「アプリケーションの設定」で取得した「認証キーとアクセストークン」を設定する | |
$OAUTH_CONSUMER_KEY = "XXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // APIキー | |
$OAUTH_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; // APIシークレットキー | |
$OAUTH_TOKEN = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // アクセストークン | |
$OAUTH_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'; // アクセストークンシークレット | |
// oauth認証で使用するパラメータ | |
$OAUTH_VERSION = "1.0"; | |
$OAUTH_SIGNATURE_METHOD = "HMAC-SHA1"; | |
// Twitter検索をするAPIとMETHODの指定 | |
$TWITTER_API_URL = 'https://api.twitter.com/1.1/search/tweets.json'; // 検索API | |
$REQUEST_COUNT = 100; // 1リクエストで取得するツイート数(最大100個まで) | |
$REQUEST_METHOD = 'GET' ; | |
//検索するキーワードの設定 | |
$SEARCH_KEYWORD = 'ポケットティッシュ'; | |
/***** OAuth1.0認証の署名生成 *****/ | |
// キー部分の作成 | |
$oauth_signature_key = rawurlencode($OAUTH_SECRET) . '&' . rawurlencode($OAUTH_TOKEN_SECRET) ; | |
// パラメータの生成・編集 | |
$oauth_nonce = microtime(); | |
$oauth_timestamp = time(); | |
$oauth_signature_param = 'count=' . $REQUEST_COUNT . | |
'&oauth_consumer_key=' . $OAUTH_CONSUMER_KEY . | |
'&oauth_nonce='.rawurlencode($oauth_nonce) . | |
'&oauth_signature_method='. $OAUTH_SIGNATURE_METHOD . | |
'&oauth_timestamp=' . $oauth_timestamp . | |
'&oauth_token=' . $OAUTH_TOKEN . | |
'&oauth_version=' . $OAUTH_VERSION . | |
'&q=' . rawurlencode($SEARCH_KEYWORD); | |
// データ部分の作成 | |
$oauth_signature_date = rawurlencode($REQUEST_METHOD) . '&' . rawurlencode($TWITTER_API_URL) . '&' . rawurlencode($oauth_signature_param); | |
// 上記のデータとキーを使ってHMAC-SHA1方式のハッシュ値に変換 | |
$oauth_signature_hash = hash_hmac( 'sha1' , $oauth_signature_date , $oauth_signature_key , TRUE ) ; | |
// base64エンコードしてOAuth1.0認証の署名作成 | |
$oauth_signature = base64_encode( $oauth_signature_hash ); | |
/***** Authorizationヘッダーの作成 *****/ | |
$req_oauth_header = array("Authorization: OAuth " . 'count=' . rawurlencode($REQUEST_COUNT) . | |
',oauth_consumer_key=' . rawurlencode($OAUTH_CONSUMER_KEY) . | |
',oauth_nonce='.str_replace(" ","+",$oauth_nonce) . | |
',oauth_signature_method='. rawurlencode($OAUTH_SIGNATURE_METHOD) . | |
',oauth_timestamp=' . rawurlencode($oauth_timestamp) . | |
',oauth_token=' . rawurlencode($OAUTH_TOKEN) . | |
',oauth_version=' . rawurlencode($OAUTH_VERSION) . | |
',q=' . rawurlencode($SEARCH_KEYWORD) . | |
',oauth_signature='.rawurlencode($oauth_signature)); | |
/***** リクエストURLの作成 *****/ | |
$TWITTER_API_URL .= '?q=' . rawurlencode($SEARCH_KEYWORD) . '&count=' . rawurlencode($REQUEST_COUNT); | |
/***** cURLによるリクエスト実行 *****/ | |
// セッション初期化 | |
$curl = curl_init() ; | |
// オプション設定 | |
curl_setopt( $curl , CURLOPT_URL , $TWITTER_API_URL ) ; // リクエストURL | |
curl_setopt( $curl , CURLOPT_HEADER, false ) ; // ヘッダ情報の受信なし | |
curl_setopt( $curl , CURLOPT_CUSTOMREQUEST , $REQUEST_METHOD ) ; // リクエストメソッド設定 | |
curl_setopt( $curl , CURLOPT_SSL_VERIFYPEER , false ) ; // 証明書検証なし | |
curl_setopt( $curl , CURLOPT_RETURNTRANSFER , true ) ; // curl_execの結果を文字列で返す | |
curl_setopt( $curl , CURLOPT_HTTPHEADER , $req_oauth_header ) ; // リクエストヘッダー設定 | |
curl_setopt( $curl , CURLOPT_TIMEOUT , 5 ) ; // タイムアウトの秒数設定 | |
// セッション実行 | |
$res_str = curl_exec( $curl ) ; | |
// セッション終了 | |
curl_close( $curl ) ; | |
/***** リクエスト実行結果取得 *****/ | |
$res_str_arr = json_decode($res_str, ture) ; // JSONを変換 | |
/***** 検索結果表示 *****/ | |
foreach ($res_str_arr['statuses'] as $twit_result){ | |
$twit_content = $twit_result['text']; | |
$twit_time = date("Y-m-d H:i:s",strtotime($twit_result['created_at'])); | |
echo $twit_content." | ".$twit_time ; | |
echo "<br />" ; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment