アプリケーション登録
下記ページにアクセスします。
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);
- });