前提
すでに作ってあるサイトにlaravelでtwitterログインするところまではできましたが、
そこからログイン情報をPHPで引っ張ってきてデータベースと照合させたいです。
laravelの機能でサイトを作ればよかったのですが、先にサイトを作っていたので、
laravelのtwitterログイン機能だけを使いたいです。
ただ、プログラミング初心者でPHPも少ししか使えないので、twitterのログイン情報をPHPで持ってきたいのですが、
やり方がわからないためご相談させてほしいです。
実現したいこと
- PHPでtwitterのログイン情報を持ってくる(idだけ持ってこれれば十分です)
発生している問題・エラーメッセージ
エラー表示なし
該当のソースコード
TwitterLoginController.php
1<?php 2 3 namespace App\Http\Controllers; 4 use Illuminate\Http\Request; 5 use Laravel\Socialite\Facades\Socialite; 6use Illuminate\Support\Facades\Log; 7 8 9 class TwitterLoginController extends Controller 10 { 11 /** 12 * Twitterの認証ページヘユーザーをリダイレクト 13 * 14 * @return \Illuminate\Http\Response 15 */ 16 public function redirectToProvider(){ 17 return Socialite::driver('twitter')->redirect(); 18 } 19 /** 20 * Twitterからユーザー情報を取得(Callback先) 21 * 22 * @return \Illuminate\Http\Response 23 */ 24 public function handleProviderCallback() 25 { 26 $user = Socialite::driver('twitter')->user(); 27 Log::info('Twitterから取得しました。', ['user' => $user]); 28 // $user->token; 29 30 } 31 } 32
web.php
1<?php 2 3use Illuminate\Support\Facades\Route; 4use App\Http\Controllers\TwitterLoginController; 5/* 6|-------------------------------------------------------------------------- 7| Web Routes 8|-------------------------------------------------------------------------- 9| 10| Here is where you can register web routes for your application. These 11| routes are loaded by the RouteServiceProvider within a group which 12| contains the "web" middleware group. Now create something great! 13| 14*/ 15 16Route::get('/', function () { 17 return view('welcome'); 18}); 19Route::get('auth/login/twitter', [TwitterLoginController::class, 'redirectToProvider']); 20Route::get('que_list',[TwitterLoginController::class, 'handleProviderCallback']); 21?> 22 23
que_list.php
1<?php session_start(); ?> 2<?php 3 4if (!isset($_GET['page_id'])) { 5 $now = 1; 6} else { 7 $now = 10 * ($_GET['page_id'] - 1); 8} 9try { 10 $db = new PDO('mysql:dbname=データベース名;host=ホスト名', 'id', 'pass'); 11 // INSERT文を変数に格納 12 $entry = $db->query("SELECT * FROM t_que ORDER BY t_que_tit LIMIT 10 OFFSET $now"); 13 $cnt = $db->query("SELECT * FROM t_que"); 14 $count = $cnt->rowCount(); 15 // 挿入する値は空のまま、SQL実行の準備をする 16} catch (PDOException $e) { 17 echo 'DB接続エラー' . $e->getMessage(); 18} 19?> 20<?php include dirname(__FILE__)."/ssi/header1.php"; ?> 21<title>Offcanvas navbar template · Bootstrap v5.0</title> 22<?php include dirname(__FILE__)."/ssi/header2.php"; ?> 23 24<body class="bg-light"> 25 <?php include "ssi/nav.php"; ?> 26 <?php echo $user ?> 27 <div id="myCarousel" class="carousel slide bg-primary" data-bs-ride="carousel"> 28 <div class="carousel-indicators mb-1"> 29 <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button> 30 <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button> 31 <button type="button" data-bs-target="#myCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button> 32 </div> 33 <div class="carousel-inner pb-3"> 34 <div class="carousel-item active"> 35 <div class="container"> 36 <div class="bg-body_a bg-body rounded shadow-sm p-3 my-3"> 37 <div class="card-body"> 38 <div class="d-flex bd-highlight"> 39 <div class="p-2 flex-shrink-1 bd-highlight"><span class="badge bg-primary" style="padding: 10px; font-size:16px; width:40px; height:40px;"> 40 <?php print($icon); ?> 41 </span></div> 42 <div class="p-2 w-100 bd-highlight"><a class="rounded" href="que_detail?que=<?php print($resister['t_que_id']); ?>"></a><span class="fs-4"><?php print(mb_substr($resister['t_que_tit'], 0, 50)); ?></span><br> 43 </div> 44 </div> 45 <?php print($resister['t_category']); ?> <time><?php print($resister['t_date']); ?></time> 46 </div> 47 </div> 48 </div> 49 </div> 50 <div class="carousel-item"> 51 <div class="container"> 52 <div class="bg-body_a bg-body rounded shadow-sm p-3 my-3"> 53 <div class="card-body"> 54 <div class="d-flex bd-highlight"> 55 <div class="p-2 flex-shrink-1 bd-highlight"><span class="badge bg-primary" style="padding: 10px; font-size:16px; width:40px; height:40px;"> 56 <?php print($icon); ?> 57 </span></div> 58 <div class="p-2 w-100 bd-highlight"><a class="rounded" href="que_detail?que=<?php print($resister['t_que_id']); ?>"></a><span class="fs-4"><?php print(mb_substr($resister['t_que_tit'], 0, 50)); ?></span><br> 59 </div> 60 </div> 61 <?php print($resister['t_category']); ?> <time><?php print($resister['t_date']); ?></time> 62 </div> 63 </div> 64 </div> 65 </div> 66 </div> 67 <button class="carousel-control-prev" type="button" data-bs-target="#myCarousel" data-bs-slide="prev"> 68 <span class="carousel-control-prev-icon" aria-hidden="true"></span> 69 <span class="visually-hidden">Previous</span> 70 </button> 71 <button class="carousel-control-next" type="button" data-bs-target="#myCarousel" data-bs-slide="next"> 72 <span class="carousel-control-next-icon" aria-hidden="true"></span> 73 <span class="visually-hidden">Next</span> 74 </button> 75 </div> 76 <main class="container"> 77 78 <div> 79 <div class="text-muted"> 80 <article> 81 82 </article> 83 </div> 84 </div> 85 </main> 86 <?php include dirname(__FILE__)."/ssi/footer.php"; ?> 87</body> 88 89</html>
試したこと
PHPのセッションで「TwitterLoginController.php」の$userにある値を入れようとしてみたのですが、
laravelとPHPの書き方の違いのせいか、うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
PHP7.4
laravel 8.8

下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。