アプリケーション登録

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

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

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

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

最終的にjQueryで出力したい

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

twitter.php

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

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

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

参考サイト

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