Webアプリ習作#9
ツイート機能の仮実装について
Laravelの枠組みで動かす前にまずは簡易的な仮実装で動作を確認する
abraham/twitteroauthのインストール
TwitterのAPIを操作できるライブラリ プロジェクトディレクトリにて以下を実行
composer require abraham/twitteroauth
終わったらcomposer.jsonを開き、requireセクションにabraham/twitteroauthが追加されていることを確認
アクセストークンをメモ
ツイートを実行するTwitterOAuthにはアクセストークンが必要 本来ならLaravel Socialiteから取得できるユーザー情報を参照するところだが、仮実装なので直打ちする app\Http\Controllers\TwitterAuthController.phpを修正
public function callback() { $providerUser = Socialite::driver('Twitter')->user(); dd($providerUser); // これを一時的に追加.(後で削除)
http://localhost:8000/auth/twitter
にアクセスしてログイン情報を確認してtokenとtokenSecretの値をメモしておく
終わったらTwitterAuthController.phpの修正を戻す
ツイートする仮画面を作成
resources/views/test.blade.phpを作成 TwitterOAuthのコンストラクタの引数には先ほどメモしたtoken,tokenSecretの文字列を記載する ※token,tokenSecretの文字列は取り扱いに注意(公開厳禁)
<?php use Abraham\TwitterOAuth\TwitterOAuth; function testTweet(){ $twitter = new TwitterOAuth( env('TWITTER_CLIENT_ID'), env('TWITTER_CLIENT_SECRET'), "メモしたtokenの文字列", "メモしたtokenSecretの文字列" ); $twitter->post("statuses/update", [ "status" => 'テストツイートです' ]); } if (isset($_GET['testtweet'])) { testTweet(); } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <title> test </title> </head> <body> <a href='index.php?testtweet=true'>テストツイートをする</a> </body> </html>
ルーティングの編集
routes/web.phpを以下のように修正
Route::get('/', function () { //return view('welcome'); // これを削除. return view('test'); // これを追加. });
確認
http://localhost:8000
にアクセスして"テストツイートをする"というリンクをクリック
ログインしたTwitterアカウントを確認してテストツイートが追加されていることを確認