composerでTwitterのoauthライブラリを利用しタイムラインを取得する

Twitter APIを使って、あれこれ条件を指定してタイムラインを取得するためには、いくつかの準備が必要です。

  1. TwitterのDeveloper Accountを登録する
  2. アプリを作成してAPIキーを取得する
  3. サーバーにcomposerをインストールする
  4. 「abraham/twitteroauth」ライブラリを導入する
  5. APIキーとoauthライブラリを使ってタイムラインを取得するphpコードを作成する
  6. WordPressで、そのphpコードを表示できるようにする
1.TwitterのDeveloper Accountを登録する

TwitterのDeveloper account登録をしてみる」を参照のこと。

2.アプリを作成してAPIキーを取得する

こちらのページなどを参考に、アプリケーションを作成します。英文で申請しなければならない(短文ですが)ので、例文も参考にしてください。

私の場合、アプリを使ってログインしたりTwitterに投稿したり、ということはせず、あくまでタイムラインを取得するだけなので、アプリケーションのAccess permissionは「Read-only」にしました。

アプリ作成後に「Keys and tokens」タブをクリックすると、Consumer API keys (Consumer Key & Consumer Secret)とAccess token & access token secretが取得できます。

3.サーバーにcomposerをインストールする

さくらサーバーに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;?>

実際の作成例はこちらです。


2022-12-03 17:31
東京混声合唱団さんの大阪定期演奏会チケットはパナムジカでも好評販売中です✨ 三枝成彰先生の新作をはじめ、木下牧子先生「地平線のかなたへ」、上田真樹先生「Melodies in Ravel」などが当日演奏される予定となっています🎵… https://t.co/yIQahFGBS5
2022-12-03 12:00
【New Arrival!】 ヴァレンティン・シルヴェストロフ Gebet fur die Ukraine (邦題:ウクライナへの祈り) 🎼https://t.co/F19StjRVSb ▶️https://t.co/NzwKvaTD3U
2022-12-03 11:47
【New Arrival!】 スペイン・バスク地方の作曲家シャビエル・サラソラの2作品を新たに取り扱い開始いたしました! Mendi-goietan 🎼https://t.co/TikaaT2kxw ▶️… https://t.co/MO4yMlrNYb
2022-12-03 11:45
【New Arrival!】 スロベニアの人気作曲家 アンブロジュ・チョピの2作品を新たに取り扱い開始いたしました! He wishes for the Cloths of Heaven 🎼… https://t.co/6Sbyh9RzBO
2022-12-03 11:30
【New Arrival!】 10月29日、30日に開催された第75回全日本合唱コンクール全国大会(中高部門)の金賞受賞団体の演奏を収録したブルーレイが発売✨ 💿中学校編 https://t.co/Fn9h5ptsRb 💿高等… https://t.co/ZnAe6MhGEq
2022-11-26 17:28
【Pre-order】 🎼信長貴富:女声合唱とピアノのための「風」(音楽之友社) 全日本合唱コンクール全国大会 高等学校部門にて、武庫川女子大学附属高等学校コーラス部様が自由曲として演奏し、金賞を受賞した作品です。 こちらも好評… https://t.co/owpWuIo3XW
2022-11-26 17:15
【Pre-order】 🎼宮本正太郎:混声合唱とピアノ連弾のための「アモール・ファティ」(全音楽譜出版社) 全日本合唱コンクール全国大会 混声合唱の部にて、あい混声合唱団様@ai_konが自由曲として演奏し、金賞(三重県知事賞&… https://t.co/LPjnlkf6By
2022-11-26 15:41
【New Arrival!】 💿The Premiere Vol.5~北の大地のオール新作初演コンサート!~ https://t.co/EANk1gY4s6 💿女声合唱団 ゆめの缶詰 第2回演奏会… https://t.co/a9TMxmVV67
2022-11-26 15:35
【New Arrival!】 🎼名田綾子:混声合唱とピアノのための「子どもたちの遺言」(教育芸術社) 谷川俊太郎さんによる様々な子どもの身になって書いたという詩をテキストとして作曲。 中高生から大人まで幅広い世代に歌っていただき… https://t.co/2BqPWm9AsY
2022-11-26 15:26
【New Arrival!】 🎼信長貴富:女声合唱曲集「きょうは いい日だ」(カワイ出版) 優しさや穏やかさを伴った、自然体で静かな祈りが感じられる詩たちと、それらに寄り添う音楽が魅力です。おかあさんコーラスなどにもオススメ🎵 https://t.co/bQ1RhL0DsB
2022-11-26 15:24
【New Arrival!】 🎼松下耕:2群の混声合唱のための「光・三首」(カワイ出版) 2群の混声合唱体によって大宇宙の完全調和を描く作品。難易度の高い楽曲となっていますので、より歌い応えのある作品をお求めの合唱団に取り組んで… https://t.co/KGdD2PQS7b
2022-11-26 15:20
【New Arrival!】 🎼木下牧子:タラマイカ偽書残闕(音楽之友社) 東京混声合唱団によって委嘱・初演された楽曲。コンクールの自由曲をはじめ演奏会レパートリーなどにもオススメです。 先日のコンクール全国大会の物販ブースでも… https://t.co/ukZcUfETKB

さまざまなオプションや取り出せるデータはこちらを参照してください。