アプリケーション登録

下記ページにアクセスします。

https://dev.twitter.com/apps

ログイン画面が表示されるので、表示したいTwitterアカウントでログインします。

My applications ページが表示されたら「Create a new application」ボタンをクリック。

「Create an application」ページでアプリ情報を入力する。

Name アプリ名
Description アプリの説明
Website アプリのURL
Callback URL コールバックされるURL

「Name」は独自のものにする必要があります。
「Website」は設置するサイトに変更してください。
「Callback URL」はユーザーに認証させる場合は必要ですが、今回は自分のツイートを表示するだけなので必要ないです。

「Yes, I agree」にチェックして「Create your Twitter application」ボタンをクリックします。

「Consumer key」と「Consumer secret」をメモして、「Create my access token」をクリックします。

画面が遷移して Your access token という欄が増えますので「Access token」「Access token secret」をメモしておきます。

PHPで自分のつぶやきを表示

認証にはライブラリを使用すると簡単です、今回は「abraham/twitteroauth」というのを使用します。

abraham/twitteroauth

フォルダの中から「twitteroauth」というフォルダを取り出す。(中には「OAuth.php」「twitteroauth.php」があります。) 新しいPHPファイル(twitter.php)を作成して同階層に「twitteroauth」フォルダを配置。

twitter.php

  1. <?php
  2. require_once("twitteroauth/twitteroauth.php");
  3. $consumerKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
  4. $consumerSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
  5. $accessToken = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
  6. $accessTokenSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
  7. $twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
  8. $req = $twObj->OAuthRequest("https://api.twitter.com/1.1/statuses/user_timeline.json","GET",array("count"=>"10"));
  9. $tw_arr = json_decode($req);
  10. if (isset($tw_arr)) {
  11. foreach ($tw_arr as $key => $val) {
  12. echo $tw_arr[$key]->text;
  13. echo date('Y-m-d H:i:s', strtotime($tw_arr[$key]->created_at));
  14. echo '
  15. ';
  16. }
  17. } else {
  18. echo 'つぶやきはありません。';
  19. }

「$consumerKey」「$consumerSecret」「$accessToken」「$accessTokenSecret」には先ほど取得したそれぞれのキーを入力します。

最終的にjQueryで出力したい

1.0以前はつぶやきの表示くらいはjQueryだけでやってたので、最終的にjQueryで表示したいという場合があります。
その場合「$req」以下を下記のようにすればjsonpでそのまま出力できます。

twitter.php

  1. $req = $twObj->OAuthRequest('https://api.twitter.com/1.1/statuses/user_timeline.json','GET',array('count'=>'10'));
  2. echo $_GET['callback'] . '(' . $req. ')';

あとはJavaScriptで下記のようにすれば今までのJSデータをそれほど修正することなくいけるんじゃないかなと。

  1. $.getJSON('http://www.example.com/twitter.php?callback=?', function (json) {
  2. console.log(json);
  3. });

参考サイト

PHP と Twitter API で OAuth 認証を行う 「タイムライン取得」「呟き(つぶやき)投稿」「ログイン」
jQuery JSONPでPHPでやりとりする方法