TwitterAPI(ver1.1)を利用して自分のつぶやきをPHPで取得したいと思います。
認証は「OAuth.php」「twitteroauth.php」の外部ライブラリを利用しています。
下記のファイル構成でレンタルサーバーで試したところ、つぶやきのデータが取得できました。
しかし自分で構築したVPSのサーバーで実行しようとしたところ、処理に長く時間がかかり、「取得できません」という表示になってしまいます。
「OAuth」「twitteroauth」を使うにあたり、サーバーで設定すべき項目はあるのでしょうか?
また、下記のプログラムで変数 $twObj にはAPIキーなどが配列で入られているのはわかったのですが、 $req 以降の変数はvar_dumpをしても何も表示されません。
TwitterAPIからどのようなメッセージが返ってきているかを表示させるには、どのようなプログラムを書けばよいのでしょうか?
以上、ご回答よろしくお願いいたします。
環境
-----------------------------
PHP 5.3.3
apach 2.2.3
CentOS 5.4(VPSで構築したLinuxサーバー)
-----------------------------
ファイル構成
OAuth.php
twitteroauth.php
tweet.php
を同じディレクトリに配置。
tweet.php
------------------------------------------------------------------------------
require_once 'twitteroauth.php';
$twObj = new TwitterOAuth($ConsumerKey,$ConsumerSecret,$AccessToken,$AccessTokenSecret);
//APIのキーは取得したものを代入しています。(記載は省略)
$req = $twObj->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeli …
$tweets = json_decode($req);
if (isset($tweets) && empty($tweets->errors)) {
echo '<dl>';
foreach ($tweets as $val) {
echo '<dd>' . $val->text . '';
}
echo '</dd></dl>';
} else {
echo '取得できません。';
}
-----------------------------------------------------------------------
No.2
- 回答日時:
あ、PHPバージョン5.3.3でしたか。
このバージョンでは配列の省略記法は使えないので['count' => 10]
を
array('count' => 10)
に変更してください。
…しかし、PHPバージョン5.3のサポートは既に終了しており、脆弱性などが見つかってもパッチは発行されません。その次のバージョンの5.4でさえも1年以内にサポートが終了する予定です。環境的な理由でどうしてもアップデート出来ないなどのケースを除けば、最近は5.5と5.6がスタンダードになりつつあります。セキュリティ面だけではなく今回のように機能面で不便を感じることも多いので、可能な限りサポートされている新しいバージョンを使うようにしましょう。VPSであれば自由にPHPをインストールできるので5.6を使うのがいいと思います。
To_aru_Userさま
ご回答ありがとうございます。
PHPのバージョンはこれを期にアップデートしたいと思います。
バージョン5.6という情報もありがとうございました。
最新のものにしてみます。
No.1ベストアンサー
- 回答日時:
twitteroauthだとJSONを取得できなかったときの原因追及が困難なので、よければ代わりにTwistOAuthを使ってください。
twitteroauthを意識した設計になっていて、学習コストは低く、且つそれよりも豊富な機能と高い信頼性を実現しています。作者自分で言うのもアレですが事実上の上位互換です。TwistOAuth
https://github.com/mpyw/TwistOAuth
【サンプル】
PHPバージョン5.4以降を想定しています。array_mapが分かりにくかったら普通にforeachで書いてもらっても構いません。
<?php
require 'TwistOAuth.php';
// ここにキーを設定
$ck = '';
$cs = '';
$ot = '';
$os = '';
// 今回はHTMLではなくプレーンテキストとして簡易表示
header('Content-Type: text/plain; charset=utf-8');
try {
$to = new TwistOAuth($ck, $cs, $ot, $os);
print_r(array_map(
function ($status) {
// 公式リツイートの場合は元ツイートに置換
if (isset($status->retweeted_status)) {
$status = $status->retweeted_status;
}
// ステータスオブジェクトをもとに整形して表示したい文字列を生成
// ツイート本文だけはあらかじめエスケープされているので
// テキストとして表示する場合は逆にアンエスケープが必要
return sprintf('%s(@%s): %s',
$status->user->name,
$status->user->screen_name,
htmlspecialchars_decode($status->text, ENT_NOQUOTES)
);
},
$to->get('statuses/user_timeline', ['count' => 10])
));
} catch (TwistException $e) {
echo 'エラー:' . $e->getMessage();
}
To_aru_Userさま
ご回答ありがとうございます。
「twitteroauth」以外にも認証の仕組みがあるんですね。
丁寧にソースまで書いていただいてありがとうございます。
導入の検討をしてみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
- PHP PHPで訪問回数を表示するカウンタを作成したい 3 2023/05/27 07:09
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WordPressのLighting(テーマ)に...
-
外部ファイルの読み込み
-
アップロードファイルの数に応...
-
ワードプレス index.phpの差し...
-
変数で日付を指定し、新しい順...
-
国語の感想文(いのうえひさし...
-
意見文のテーマ
-
ワードプレスのサイトに謎の英...
-
ワードプレス。lightning ペー...
-
Dropboxとウイルスバスターにつ...
-
Chromeのプラグインブロック
-
こんな素敵なサイトって、WordP...
-
wordpressでライトボックスで記...
-
Lightningのテーマで、CSSでの...
-
WordPressでの、スタッフ、メン...
-
Win7のタスクバーの色が変更で...
-
Windows Media Player
-
ワードプレスって何ですか?
-
WP ショートコードの編集?
-
ワードプレスにログインできま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WordPressのLighting(テーマ)に...
-
アップロードファイルの数に応...
-
WP/ 記事タイトルをクリックさ...
-
PHPのソース変更が反映されない
-
ワードプレスでカテゴリー毎に...
-
URL短縮ツール「楽々URL」をさ...
-
ワードプレス index.phpの差し...
-
曜日毎に読み込むphpを変更...
-
PHPのクッキーによるリダイレクト
-
PHP初心者です。
-
変数で日付を指定し、新しい順...
-
Smarty コンバートエラー??
-
Wordpressで記事がない場合にメ...
-
国語の感想文(いのうえひさし...
-
ワードプレス。lightning ペー...
-
ワードプレステーマkatawaraのCSS
-
意見文のテーマ
-
ワードプレスのプラグイン
-
ワードプレスの403エラーについて
-
こんな素敵なサイトって、WordP...
おすすめ情報