tristanward/laravel-workable

Workable API 的 Laravel 封装。使用官方的 Workable API,轻松访问和缓存您的 Workable 账户中的职位。

1.1.0 2019-05-10 14:31 UTC

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');

感谢

https://www.tristanward.co.uk