ツイッターAPI、php,laravelを使ってログインユーザーのタイムラインを表示

こんにちわ、ライオンの中の人です。

よく、ツイッターでログインでログインとかありますよね。ツイッターでログイン機能の付け方と、ログインしたユーザーのタイムラインを表示するコードです。

備忘録です。

Twitterアプリの登録と必要ファイル、ライブラリのダウンロード

まずTwitterのアプリの登録が必要です。こちらについては他のサイトでも多く記事にされているのでそちらをご覧ください。

このサイトがおすすめです。

次に下のファイルをダウンロードしてください。

ダウンロードコード

Abraham Williamsさんという方のファイルです。ツイッターAPIを使うのに便利な機能があります。ダウンロード後、vendorの直下に置いてください。(laravelでプロジェクトを開始するとvendorというファイルがあると思います。)

次に、laravelには socialiteというAPIの機能を使うのに特化したライブラリがあります。下記コマンドでインストールしてください

ここからコードを書いていきます。まずconfig/services.phpに下記コードを追加してください。

次に.evnに下記コード

web.phpは以下の通り

ここからメインのコントローラーです。まずツイッターにログインするコントローラーです。OAuthLoginController

ここのコントローラーでは、初めてログインするユーザーはデータベースにユーザーを作成しています。

それがUser::findOrCreateUser($user,$provider);です。ユーザーを作成するかの判断とユーザー作成は下のApi.phpにまかせています。

続いてライムラインをviewします。ここのタイムラインとはあなたのタイムラインというわけでなく、ログインしたユーザーのタイムラインです。

OAuthLoginController

ツイッターAPIから取得したリツイートは、イイネが0になります。また同じ違う人は行った同じツイートのリツイートばかり取得する可能生もあったので、リツイートに関しては省きました。

timelinesの取得に関しては、下のApi.phpに任せています。

ちなみにviewのタイムライン表示部分ははこんな感じ

記事は以上です。

ABOUTこの記事をかいた人

英語と筋トレとプログラミングとツイッターに命かけてます。「俺はライオンやで」の中の人です。 まったくの初心者が英語が話せるようになって筋肉がついて、プログラマーとして就職できるブログです。 プロフィール記事に詳細書いてるので詳しくはそちら。 写真はそのうち貼ります