Twitter APIを使って、あれこれ条件を指定してタイムラインを取得するためには、いくつかの準備が必要です。
- TwitterのDeveloper Accountを登録する
- アプリを作成してAPIキーを取得する
- サーバーにcomposerをインストールする
- 「abraham/twitteroauth」ライブラリを導入する
- APIキーとoauthライブラリを使ってタイムラインを取得するphpコードを作成する
- WordPressで、そのphpコードを表示できるようにする
1.TwitterのDeveloper Accountを登録する
「TwitterのDeveloper account登録をしてみる」を参照のこと。
2.アプリを作成してAPIキーを取得する
こちらのページなどを参考に、アプリケーションを作成します。英文で申請しなければならない(短文ですが)ので、例文も参考にしてください。
Twitter Developerの開発者申請(例文あり)とAPIキー取得方法まとめ【2019年版】
WordPressのRevive Old Postプラグインを使って、投稿記事を自動でTwitterのタイムラ
私の場合、アプリを使ってログインしたりTwitterに投稿したり、ということはせず、あくまでタイムラインを取得するだけなので、アプリケーションのAccess permissionは「Read-only」にしました。
アプリ作成後に「Keys and tokens」タブをクリックすると、Consumer API keys (Consumer Key & Consumer Secret)とAccess token & access token secretが取得できます。
3.サーバーにcomposerをインストールする
さくらサーバーにcomposerをインストールするには、こちらを参考にしました。
さくらサーバーでcomposerをインストールしたけどコマンドが動かないよ? | むねひろ@プログラマー
PHPのフレームワークをインストールしようとするとcomposerってのを使ってインストールする方法がよく紹介
4.Oauthライブラリの導入
サーバーにSSH接続して、ライブラリをインストールしたいディレクトリに移動したあと、以下のコマンドを実行します。composerをインストールしたディレクトリと異なる場合には、「/home/アカウント/composer.phar」みたいにcomposerまでのパスを書いてやればいいと思います。
php composer.phar require abraham/twitteroauth
5.phpコードの作成
以下のようなコードを作成してみます。
<?php
// TwitterOAuthライブラリを読み込み
require 'vendor/autoload.php';
// TwitterOAuthクラスをインポート
use Abraham\TwitterOAuth\TwitterOAuth;
//Developer Accountで作成したアプリのAPIキーを代入
$consumer_key = '***************';
$consumer_secret = '***************';
$access_token = '***************';
$access_token_secret = '***************';
// TwitterOAuthクラスのインスタンスを作成
$connection = new TwitterOAuth( $consumer_key, $consumer_secret, $access_token, $access_token_secret );
// ユーザータイムラインを取得するためのオプション
$options = [
'screen_name'=>'**********', //表示させるユーザーアカウント
'count'=>'15', //取得するtweetの数
'exclude_replies'=>'true', //リプライを除外する
'include_entities'=>'true', //画像のurl等を含める
];
$tweets = $connection -> get('statuses/user_timeline',$options);
?>
これで、指定したユーザーのタイムラインの情報が取れます。foreachで回して、表示したい情報を取り出していけばOKです。
<?php foreach($tweets as $value):
$prof_image = $value -> user -> profile_image_url_https;// プロフィール画像のURL
$createdAt = $value -> created_at;// 投稿時刻
$media_url = $value -> entities-> media[0] -> media_url_https; // 添付画像のURL
$user_id = $value -> user -> screen_name;
$text = $value -> text; // 投稿本文($tweet_mode=expandedにしている場合はfull_text)
?>
//ここに表示させたい内容を書いていく
<?php endforeach;?>
実際の作成例はこちらです。
[myphp file=’mytimeline3′]
さまざまなオプションや取り出せるデータはこちらを参照してください。
Overview