one's way blog

ワクワクを生み出せるWebエンジニアを目指して。

【42:TwitterOAuth 】自分のTwitterタイムラインを表示する

f:id:seintoseiya:20151130234441p:plain
プロジェクトNo.42:TwitterOAuth - DEMO

単純に自分のTwitterタイムラインを表示したいのであれば、Twitterプラグインを使って埋め込みコードを入れれば実装できますが、
Twitterでのログイン管理や各種情報の取得などはAPIを使って実装する必要があります。
今現在、一番有名であるTwitterOAuthを使って実装してみました。

TwitterOAuthのダウンロード

GitHub - abraham/twitteroauth: The most popular PHP library for use with the Twitter OAuth REST API.
最新を使った方が良いのですが、お使いの環境によってバージョンを選択してください。
(というのも、私が使っているロリポップではPHPのバージョンのせいで最新バージョンが使えず、あえて以前のバージョンを使っています)

中身のtestsは関係ないのでそれ以外のファイルを使います。

Twitterアプリを作成

まずはTwitterデベロッパー向け公式サイトの以下からTwitter側の連携用アプリを作成します。
https://apps.twitter.com/
f:id:seintoseiya:20151130234556p:plain

[Create New App]をクリックして、
Consumer KeyとConsumer Secretをゲットする。
これはTwitter側の連携アプリを特定するもので、自身のアプリから呼び出す時に必要なコードになります。

Twitter連携の流れ

細かい中身までは説明しませんが、おおまかな流れとして、

自身のアプリ

Consumer KeyとConsumer Secretを使ってRequest Token、Request Secretを生成。
Request Token、Request Secretとは連携リクエストを特定するものです。
これらを使ったURLでTwitter認証ページへリダイレクト。

Twitter

Twitterの認証画面で認証が完了したら、Twitterアプリを登録した時に設定したCallback URLに飛ばされる。

自身のアプリ

認証結果とRequest Token、Request Secretとを照合して、正しくアクセスされたかと確認する。
(自身のアプリからではなく、URLを直叩きでTwitter認証に行ってもここではじかれる)
Consumer Key、Consumer Secretと認証結果があるので新たにAccess Token、Access Secretを生成。
Access Token、Access Secretとは連携したユーザーを特定するもので、この後はこれを使って色んな操作をしていきます。

結果

f:id:seintoseiya:20151130234610p:plain
Access Token、Access Secretで作った新しいTwitterOAuthインスタンスを使って、
自身のタイムラインを取得するAPI(statuses/user_timeline)を利用。


現状こんな感じですが、TwitterAPIやTwitterOAuthのバージョンアップがされると動かなくなったりするのでその点は注意ください。
実際、私も参考サイトの通りにやったのにできなくて、色々バージョンいじって(サーバ側のPHPとかも)やっと動きました。
まぁTwitter連携の流れはそうそう変わらないと思うので、仕組みの理解にお役に立てばと思います。

全ソースはこちら

github.com