shibuyakosuke/laravel-nextengine

NextEngine API SDK for Laravel.

v0.0.5 2021-03-30 14:26 UTC

This package is auto-updated.

Last update: 2021-04-30 14:42:33 UTC


README

Overview

ネクストエンジン API の Laravel プラグイン(非公式)です。 ネクストエンジン API に関してのリファレンスやコミュニティは Developer Network をご利用ください。

Overview

  • ネクストエンジンAPI利用時の認証関連処理
  • ネクストエンジンAPI利用時のリクエスト処理

実装済みのメソッドはこちら

Install

composer でインストールしてください。

composer require shibuyakosuke/laravel-nextengine

Laravel バージョン 8 以上を使う場合は、別途 laravel/legacy-factories をインストールしてください。

composer require laravel/legacy-factories

設定

.env に以下の項目を追加します。

ここに記述するのは、初期設定として利用するアカウントで、Seeding のときのみ、利用されます。

NEXT_ENGINE_USERNAME=(ネクストエンジンの管理者アカウント名)
NEXT_ENGINE_PASSWORD=(ネクストエンジンの管理者パスワード)
NEXT_ENGINE_CLIENT_ID=(ネクストエンジンの管理者 CLIENT_ID)
NEXT_ENGINE_CLIENT_SECRET=(ネクストエンジンの管理者 CLIENT_SECRET)
NEXT_ENGINE_REDIRECT_URI=(ネクストエンジンの管理者 REDIRECT_URI)

User モデルへのリレーション追加

以下のように、NextEngineApi トレイトを追加すると、hasOneNextEngineApi モデルへのリレーションを追加できます。

<?php

namespace App\Models;

use Illuminate\Foundation\Auth\User as Authenticatable;
use ShibuyaKosuke\LaravelNextEngine\Traits\NextEngineApi;

class User extends Authenticatable
{
    use NextEngineApi; // 追加
}

設定ファイルの出力

以下のコマンドで、

  • config/nextengine.php
  • database/migrations/2020_01_01_000000_create_next_engine_apis_table.php
  • database/factories/NextEngineApiFactory.php

が出力されます。適宜編集してください。

php artisan vendor:publish --tag=nextengine

利用方法

OrderController から、受注伝票を取得する例

<?php

namespace App\Http\Controllers;

class OrderController extends Controller
{
    public function index()
    {
        $parameters = [];
        $receiveOrder = NextEngine::receiveOrderBaseSearch($parameters);        
        return view('orders.index', compact('receiveOrder'));
    }
}

アクセストークンの更新

アクセストークンの更新のためのコマンドが利用可能になっています。

php artisan nextengine:refresh-tokens

アクセストークンの更新の自動化

アクセストークンの更新を cron などの仕組みを利用して、自動化することも可能です。

app/Console/Kernel.phpschedule メソッドを 以下のように編集します。

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    protected function schedule(Schedule $schedule)
    {
        $schedule->command('nextengine:refresh-tokens')->everyThirtyMinutes(); // <- 追加
    }
}

このスケジュルが実行されるために、cron に以下のタスクを追加します。

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1