ホームページに自分のツイートを表示する(ツイート取得編)
1週間はえええ。
ユキミネです。
先日、僕が歌っているユメオチというアコースティックグループのホームページを作りました。
まだほとんどコンテンツもなく、これから何を足していこうかという状態なんですが、とりあえずユメオチのアカウントのツイートを表示することにしました。
「そんなん公式のガジェット使えばいいやん」
そう思っていた時期が僕にもありました。
大好きなきゃりーぱみゅぱみゅのホームページを見るまでは。
この表示の仕方かっけえええ!!!
どうやっているのか分かりませんが、なんとなくTwitter APIを使っている気がします。
(既存のガジェット探せばあるかもしれないけど、それじゃ技術ブログにならないからやってないよ!)
やりたいこと
- ホームページに(自分の)音楽アカウントのツイートを載せたい
- お知らせ的な使い方をしたいので、リプライやリツイートはいらない(載せたくない)
参考にしたページ
Twitter API、周りの人は結構使ってるんですが、僕は初だったので1からスタートでした。
参考にしたページはこちら。
というかほぼそのまんまです。
この場を借りて御礼申し上げます。
というわけでガンガン割愛しながら進めていきます。
今回やることはこちら。
- Twitterアプリの登録(割愛)
- OAuth用ライブラリのダウンロード(割愛)
-
- 3. のリストのツイートを取得
- ツイートの表示(次回)
表示したいアカウントを含んだリストのIDを取得
指定したユーザのタイムラインを取得する方法もあるのですが、それだとそのユーザがフォローしている人のツイートやリプライも拾ってしまうので、表示させたい人(今回はユメオチのアカウント)だけを追加したリストを作って、そのリストのツイートを表示することにしました。
>|php|
<?php
/*
===== 参考 =====
Twitter API1.1でwebサービスを作ろう!入門チュートリアル
http://programmerbox.com/2013-07-16_twitter_api_1.1_tutorial
*/
// twitteroauth
require_once 'twitteroauth/twitteroauth.php';
// Twitterアプリ情報
$consumer_key = 'hoge';
$consumer_secret = 'hoge';
$access_token_secret = 'hoge';
// オブジェクト生成
$tw_obj = new TwitterOAuth (
$consumer_key,
$consumer_secret,
$access_token,
$access_token_secret
);
// REST API、メソッド、オプションの指定
$tw_rest_api = 'https://api.twitter.com/1.1/lists/ownerships';
$request_method = 'GET';
$options = [
'user_id' => 'hoge'
];
// リクエストの送信
$tw_obj_request = $tw_obj->OAuthRequest (
$tw_rest_api,
$request_method,
$options
);
// レスポンスをjson形式で受け取って表示
$tw_obj_request_json = json_decode($tw_obj_request, true);
var_dump($tw_obj_request_json);
||<
json形式でリストに関する情報がばーっと返ってきますが、listsキーの中のarrayのidキーの中に入っている数字が目当てです。
個人的に「自分1人だけのリストもなあ〜」と思ったので非公開設定で作りました。
ちなみに
>||
GET lists/ownerships
<||
はuser_idに自分(Twitterアプリの登録をしたアカウント)を設定すると、非公開設定のリストだけを返すみたいです。
3. のリストのツイートを取得
3. で取得したリストのIDをlist_idに代入します。
>|php|
<?php
/*
===== 参考 =====
Twitter API1.1でwebサービスを作ろう!入門チュートリアル
http://programmerbox.com/2013-07-16_twitter_api_1.1_tutorial
*/
// twitteroauth
require_once 'twitteroauth/twitteroauth.php';
// Twitterアプリ情報
$consumer_key = 'hoge';
$consumer_secret = 'hoge';
$access_token_secret = 'hoge';
// オブジェクト生成
$tw_obj = new TwitterOAuth (
$consumer_key,
$consumer_secret,
$access_token,
$access_token_secret
);
// REST API、メソッド、オプションの指定
$tw_rest_api = 'https://api.twitter.com/1.1/lists/statuses.json';
$request_method = 'GET';
$options = [
'list_id' => 'hoge',
'count' => 3,
'include_rts' => false
];
// リクエストの送信
$tw_obj_request = $tw_obj->OAuthRequest (
$tw_rest_api,
$request_method,
$options
);
// レスポンスをjson形式で受け取ってツイートのみを表示
$tw_obj_request_json = json_decode($tw_obj_request, true);
$time_line_texts = '';
foreach ($tw_obj_request_json as $key => $value) {
$time_line_texts .= '<p>'.$value["text"].'</p>';
}
print($time_line_texts);
||<
結果はこちら。
>||
いきなり城址公園でライブ!! 足を止めて聴いて下さった方々、本当にありがとうございました! これからライブカフェでライブです!! 三浦トシアキさんとSHOWBEN小僧にてお待ちしております(*^^*) http://t.co/ImbowcTWo0 新津駅にて!! これから新発田SHOWBEN小僧 のフリーマイクに参戦! http://t.co/zaTfOGeW5P
||<
countオプションで3件取得するように、include_rtsオプションでリツイートを含まないようにしているんですが、
- リツイートを除く3件を取得
ではなく
- 3件取得してからリツイートを除く
ようですね。
あんまり、countの値が小さいと、リツイートを多用した際に1件も取得できなくなってしまいそうです。
つづく
次週は取得したツイートを組み込んでいきます。