今回はLaravelでGoogleスプレッドシートに簡単にアクセルできるSheetDBの設定とその使い方をみていきます。
[環境]
Laravel : version 6.20.34
composer : version 2.1.8
Laravel環境の準備
今回はデスクトップ上にdevelopディレクトリを作成し、その中で環境構築しています。
$ composer create-project --prefer-dist laravel/laravel lara-spread "6.*"
$ php artisan -V
Laravel Framework 6.20.34
Googleスプレッドシートの準備
今回はSheetDBという名前でスプレッドシートを下記のように用意しておきます。
このシートに入力されたデータをLaravel側で取得します。
最後にスプレッドシート上の右上にある共有ボタンからリンクを取得しておいてください。
SheetDBの設定
以下のURLで公式に入れます。
Create Free APIを選択
次の画面で右上のCREATE NEWを選択
URLを入力するところに先ほどのスプレッドシートで取得したリンクを貼り
CREATE APIボタンを押します。
これでLaravelとGoogleスプレッドシートを結ぶSheetDBのAPIを作成することができました。
なお今回はSheetDBの無料プランを使用しているため制約があります。
・API数上限が2つまで
・リクエスト数上限500まで
SheetDB Libraryをインストール
GoogleスプレッドシートをLaravelで使用するために今回はSheetDBというAPIを使用しますが、Laravel側でSheetDBを適用させるために専用のライブラリをLaravelにインストールします。
$ composer require sheetdb/sheetdb-php
データを取得する
では先ほどのスプレットシートで入力されたデータをLaravelで取得するために
まずはcontrollerを作成しておきます。
$ php artisan make:controller SpreadController
SpreadController内の記述
lara-spread > app > Http > Controllers > SpreadController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use SheetDB\SheetDB;
class SpreadController extends Controller
{
public function get(){
$sheetDB = new SheetDB('API ID');
$response = $sheetDB->get();
dd($response);
}
}
・use SheetDB\SheetDB;
⇨インストールしたSheetDBをSpreadControllerクラスで使用できるように記述
・new SheetDB(‘API ID’);
⇨SheetDBのインスタンスを作成
・$SheetDB→get();
⇨Googleスプレッドシート上のデータを全て取得
routeの記述
lara-spread > routes > web.php
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Route::get('get', 'SpreadController@get'); #ここを追加
サーバを起動
$ php artisan serve
以下のURLを入力すると、JSON形式でスプレッドシートの内容が全て取得できていると思います。http://127.0.0.1:8000/get
これでGoogleスプレッドシート内に記述された内容をLaravel側で取得することができました。
SheetDBのCRUDメソッド
#指定したデータの検索
$sheetDB->search(['lastName'=>'Yoichi']);
#一行にデータを追加
$sheetDB->create(['firstName'=>'Kaitani','lastName'=>'Riku','phone_number'=>'777-777-777']);
#指定したデータの更新
$sheetDB->update('firstName','Hiruma',['lastName'=>'Devil']);
#指定したデータを持つ一行分のデータを削除
$sheetDB->delete('firstName','Kaitani',);
その他詳しいメソッドについては公式をご確認ください。
今回は以上となります。
よろしければこちらも
コメント