tristanward / laravel-workable
Workable API 的 Laravel 封装。使用官方的 Workable API,轻松访问和缓存您的 Workable 账户中的职位。
Requires
- doctrine/dbal: 2.9.x-dev
- guzzlehttp/guzzle: ^6.3@dev
This package is auto-updated.
Last update: 2024-09-20 20:51:58 UTC
README
Workable API 的 Laravel 封装。使用官方的 Workable API,轻松访问和缓存您的 Workable 账户中的职位。
安装
通过 composer 安装
$ composer require tristanward/laravel-workable
配置
Laravel Workable 需要您的 Workable 账户 子域名
和账户的 访问令牌
。有关查找这些信息的方法,请参阅官方 Workable API 文档
https://workable.readme.io/docs/generate-an-access-token
Workable 的 子域名
和 访问令牌
应配置在 Laravel 的 .env
文件中
WORKABLE_SUBDOMAIN=your-sub-domain
WORKABLE_ACCESS_TOKEN=your-access-token
缓存 Workable 职位
可以将 Workable 职位缓存起来,以限制对 Workable API 的调用。为此,必须首先使用包含的迁移创建一个 workable_vacancies
表。
php artisan migrate
要缓存所有 Workable 职位,请使用 laravel-workable:cache
控制台命令。此命令将删除所有先前缓存的职位,并用当前的已发布职位替换它们。
php artisan laravel-workable:cache
此命令可以在 Laravel 的默认调度器中使用,例如,在每周日 03:00 缓存所有已发布的 Workable 职位。
// App/Console/Kernel.php use Tristanward\LaravelWorkable\Console\LaravelWorkableCache; protected $commands = [ ... LaravelWorkableCache::class, ]; protected function schedule(Schedule $schedule) { ... $schedule->command('laravel-workable:cache') ->sundays() ->at('03:00'); }
使用缓存的 Workable 职位
一旦 Workable 职位被缓存,就可以像使用正常的 Laravel Eloquent 模型一样使用它们。
<?php use Tristanward\LaravelWorkable\Models\WorkableVacancy; // Get all cached Workable vacancies $vacancies = WorkableVacancy::all(); // Get an array of all unique vacancy locations $locations = WorkableVacancy::uniqueLocations(); // Get an array of all unique vacancy positions $positions = WorkableVacancy::uniquePositions();
直接 API 使用
Laravel Workable 还提供了一个 Laravel facade,以便在需要时使用 Workable API 封装。这些函数直接使用 Workable API,因此您需要考虑 API 访问速率限制。
<?php use Tristanward\LaravelWorkable\Facades\LaravelWorkable; // Get all published workable vacancies $vacancies = LaravelWorkable::vacancies(); // Alternatively, a state may be provided $vacancies = LaravelWorkable::vacancies($state = 'draft'); // Full data for a single vacancy can be accessed with it's $shortcode $vacancy = LaravelWorkable::vacancy($shortcode = 'ABCDEFGHIJ');