footmark

ひよっこエンジニアの足跡

ホームページに自分のツイートを表示する(ツイート取得編)

1週間はえええ。

 

ユキミネです。

 

先日、僕が歌っているユメオチというアコースティックグループのホームページを作りました。

 

http://yumeochi.com/

 

まだほとんどコンテンツもなく、これから何を足していこうかという状態なんですが、とりあえずユメオチのアカウントのツイートを表示することにしました。

「そんなん公式のガジェット使えばいいやん」

そう思っていた時期が僕にもありました。

大好きなきゃりーぱみゅぱみゅのホームページを見るまでは。

 

http://kyary.asobisystem.com/

 

この表示の仕方かっけえええ!!!

どうやっているのか分かりませんが、なんとなくTwitter APIを使っている気がします。

(既存のガジェット探せばあるかもしれないけど、それじゃ技術ブログにならないからやってないよ!)

 

やりたいこと

  • ホームページに(自分の)音楽アカウントのツイートを載せたい
  • お知らせ的な使い方をしたいので、リプライやリツイートはいらない(載せたくない)

 

参考にしたページ

Twitter API、周りの人は結構使ってるんですが、僕は初だったので1からスタートでした。

参考にしたページはこちら。

 

 

というかほぼそのまんまです。

この場を借りて御礼申し上げます。

というわけでガンガン割愛しながら進めていきます。

今回やることはこちら。

 

  1. Twitterアプリの登録(割愛)

    Twitter Developers

  2. OAuth用ライブラリのダウンロード(割愛)

    abraham/twitteroauth · GitHub

  3.  

    表示したいアカウントを含んだリストのIDを取得
  4. 3. のリストのツイートを取得
  5. ツイートの表示(次回)

 

表示したいアカウントを含んだリストの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 = '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 = '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件も取得できなくなってしまいそうです。

 

つづく

次週は取得したツイートを組み込んでいきます。