ワイヤード・パンチ

サイトタイトル変えたい…。もうメカメカしいの関係なくなった…。

PHPでTwitterAPIを使って、ツイートURLからツイート情報を取得する方法。

コイカツ保管庫 | スクショとキャラデータ置き場です。

上記サイトでは、最初の写真のとおり、各記事ごとに関連するツイートのURLを、Wordpressのカスタムフィールドとして紐付けさせています。

そのツイートに対して送られてきたいいねやRTの数値を、一覧画面で表示させています。

ツイートのURLからいいね数とRT数の情報を取得するわけですが、今回はそのURLから取得する方法について。

広告

準備するもの。

Twitterで誰からもっともいいねされているか調べられるツールを作りました。

前回の記事と同様、Twitter APITwitterOauthが必要です。

導入方法については省略します。

ちなみに言語はPHPです。

ツイートURLからツイート情報を取得するには?

$twitter->get('statuses/show', array('id' => $tweet_id));

TwitterOauthを使って、ツイートのIDからツイートの詳細情報を取得することなら可能です。

https://twitter.com/(アカウント名)/status/(ツイートID)

なお、ツイートIDというのは、ツイートの詳細ページを開いて、URLの末尾の数字部分のことです。

しかし、IDからツイートを取得することはできても、URLから直接取得することはできません。

先程のサイトのカスタムフィールドにはURLで登録しているので、そこからすぐに取得することができたら、楽だったのですが…。

ただ、実際のツイートIDと、URL末尾のIDに違いはないので、ただ単にURLからID部分を抜き出すだけで簡単に取得できます。

しかも、途中部分から抜き出すのだったら正規表現が必要になって少々面倒だったのですが、今回は末尾なので、簡単に抜き出せます。

$tweet_url = "https://twitter.com/(アカウント名)/status/(ツイートID)";
$tweet_id = str_replace("https://twitter.com/(アカウント名)/status/", '', $tweet_url);
$tweet = $twitter->get('statuses/show', array('id' => $tweet_id));

str_replaceで、該当部分を何もなしに置き換えるだけです。

今回のサイトの例だと、アカウント名も使うのは一つだけなので、固定の文字列でいけます。

これで実質、ツイートURLからツイート情報を取得する処理となりました。

あとは変数に格納したツイート情報のオブジェクトから、いいねやRTのカウントなど、必要なものを抜き出しましょう。

この記事を書いたきっかけ。

TwitterOuathでツイートURLから情報を取得する処理がないかと検索しても、何も見つからなかったためです。

そういう機能が備わっていないから、当然といえば当然ではあります。

でも、もう少し探してみると、IDから取得する方法があることと、URLにIDが含まれていることに気づいたので、いちおう今回の記事としてまとめておこうと思ったわけです。