-
-
Save daiki44/1632d2b412713ed5071aa65b1f03b000 to your computer and use it in GitHub Desktop.
【Laravel5.5 × abraham TwitterOAuth】PHPでTwitter連携をつくってみた ref: https://qiita.com/daiki_44/items/fe11d57e53647f4b59f4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
TWITTER_CONSUMER_KEY=xxxxxxxxxxxx | |
TWITTER_CONSUMER_SECRET=xxxxxxxxxxxx | |
TWITTER_ACCESS_TOKEN=xxxxxxxxxxxx | |
TWITTER_ACCESS_TOKEN_SECRET=xxxxxxxxxxxx | |
TWITTER_CALLBACK_URL=http://xxxx.com/login/twitter/callback |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
composer require abraham/twitteroauth |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public function getFollowerList(Request $request) | |
{ | |
# userがある前提です | |
$user = User::find(Auth::user()->user_id); | |
$twitter = new TwitterOAuth( | |
config('twitter.consumer_key'), | |
config('twitter.consumer_secret') | |
); | |
# 指定したユーザーのフォロワーを取得 | |
$timeline = $twitter->get('followers/list', array( | |
'user_id' => Auth::User()->twitter_id, | |
)); | |
dd($ret); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public function getFollowList(Request $request) | |
{ | |
# userがある前提です | |
$user = User::find(Auth::user()->user_id); | |
$twitter = new TwitterOAuth( | |
config('twitter.consumer_key'), | |
config('twitter.consumer_secret') | |
); | |
# 指定したユーザーのフォローを取得 | |
$timeline = $twitter->get('friends/list', array( | |
'user_id' => Auth::User()->twitter_id, | |
)); | |
dd($ret); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public function getTimeline(Request $request) | |
{ | |
# userがある前提です | |
$user = User::find(Auth::user()->user_id); | |
$twitter = new TwitterOAuth( | |
config('twitter.consumer_key'), | |
config('twitter.consumer_secret') | |
); | |
# 指定したユーザーのタイムラインを取得 | |
$timeline = $twitter->get('statuses/user_timeline', array( | |
'user_id' => Auth::User()->twitter_id, | |
)); | |
dd($ret); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# useを忘れずに! | |
use Abraham\TwitterOAuth\TwitterOAuth; | |
class LoginController extends Controller | |
public function twitter() | |
{ | |
$twitter = new TwitterOAuth( | |
config('twitter.consumer_key'), | |
config('twitter.consumer_secret') | |
); | |
# 認証用のrequest_tokenを取得 | |
# このとき認証後、遷移する画面のURLを渡す | |
$token = $twitter->oauth('oauth/request_token', array( | |
'oauth_callback' => config('twitter.callback_url') | |
)); | |
# 認証画面で認証を行うためSessionに入れる | |
session(array( | |
'oauth_token' => $token['oauth_token'], | |
'oauth_token_secret' => $token['oauth_token_secret'], | |
)); | |
# 認証画面へ移動させる | |
## 毎回認証をさせたい場合: 'oauth/authorize' | |
## 再認証が不要な場合: 'oauth/authenticate' | |
$url = $twitter->url('oauth/authenticate', array( | |
'oauth_token' => $token['oauth_token'] | |
)); | |
return redirect($url); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public function twitterCallback(Request $request) | |
{ | |
$oauth_token = session('oauth_token'); | |
$oauth_token_secret = session('oauth_token_secret'); | |
# request_tokenが不正な値だった場合エラー | |
if ($request->has('oauth_token') && $oauth_token !== $request->oauth_token) { | |
return Redirect::to('/login'); | |
} | |
# request_tokenからaccess_tokenを取得 | |
$twitter = new TwitterOAuth( | |
$oauth_token, | |
$oauth_token_secret | |
); | |
$token = $twitter->oauth('oauth/access_token', array( | |
'oauth_verifier' => $request->oauth_verifier, | |
'oauth_token' => $request->oauth_token, | |
)); | |
# access_tokenを用いればユーザー情報へアクセスできるため、それを用いてTwitterOAuthをinstance化 | |
$twitter_user = new TwitterOAuth( | |
config('twitter.consumer_key'), | |
config('twitter.consumer_secret'), | |
$token['oauth_token'], | |
$token['oauth_token_secret'] | |
); | |
# 本来はアカウント有効状態を確認するためのものですが、プロフィール取得にも使用可能 | |
$twitter_user_info = $twitter_user->get('account/verify_credentials'); | |
dd($twitter_user_info); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
# configファイルは自作してください。 | |
return [ | |
'consumer_key' => env('TWITTER_CONSUMER_KEY', ''), | |
'consumer_secret' => env('TWITTER_CONSUMER_SECRET', ''), | |
'access_token' => env('TWITTER_ACCESS_TOKEN', ''), | |
'access_token_secret' => env('TWITTER_ACCESS_TOKEN_SECRET', ''), | |
'callback_url' => env('TWITTER_CALLBACK_URL', ''), | |
]; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment