質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

1667閲覧

Twitter APIでキーワードを表示したい

ytyt

総合スコア6

Twitter

Twitterは、140文字以内の「ツイート」と呼ばれる短文を投稿できるサービスです。Twitter上のほぼ全ての機能に対応するAPIが存在し、その関連サービスが多く公開されています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/09/14 06:44

###前提・実現したいこと
http://wp-e.org/2016/06/06/6811/
上記のサイトを参考にして、下記ファイルをアップロードしました。確認をすると
最初は上手く表示がされるのですが、暫くたつ(1日程度?)経過すると表示が消えている、という状態が続いています。。
APIキー等実際には設定されています。

知識不足で、何が原因がわかりません。。。
大変お手数ですが、何かご教授いただけますと幸いです。

###コード

<?php /***** 各種設定 *****/ // 「アプリケーションの設定」で取得した「認証キーとアクセストークン」を設定する $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 = 1; // 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 '<div class="">' ; echo '<p>' ; echo '「〇〇◯」でのツイートをピックアップ!' ; echo '</p>' ; echo '<div>' ; echo '<div>' ; echo "$twit_content" ; echo '</div>' ; echo '</div>' ; echo '</div>' ; } ?>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問