coliving / zendesk-laravel
Laravel 对 zendesk/zendesk_api_client_php 包的封装
Requires
- php: >=5.4.0
- illuminate/support: ~5.4|^6.0|^7.0|^8.0|^9.0|^10.0
- zendesk/zendesk_api_client_php: 2.*
This package is not auto-updated.
Last update: 2024-09-27 10:02:07 UTC
README
这是一个来自 Nahid/Talk 的分支,用于与新 Laravel 10 兼容。此包提供了与 Zendesk API 的集成。它支持创建工单、检索和更新工单、删除工单等。
此包仅提供了一个 Zendesk
门面,作为 zendesk/zendesk_api_client_php 包的包装器。
注意:目前仅支持基于令牌的认证。
安装
您可以通过 Composer 使用以下命令安装此包:
composer require coliving/zendesk-laravel
您还必须安装服务提供者。
Laravel 5.5+ 用户:此步骤可能可以跳过,因为该包支持自动发现。
// config/app.php 'providers' => [ ... Huddle\Zendesk\Providers\ZendeskServiceProvider::class, ... ];
如果您想使用门面,也必须安装它。
// config/app.php 'aliases' => [ .. 'Zendesk' => Huddle\Zendesk\Facades\Zendesk::class, ];
配置
要发布配置文件到 app/config/zendesk-laravel.php
,请运行以下命令:
php artisan vendor:publish --provider="Huddle\Zendesk\Providers\ZendeskServiceProvider"
使用 环境变量 设置您的配置,无论是在您的 .env
文件中还是在您的服务器控制面板上
ZENDESK_SUBDOMAIN
您的 Zendesk 组织 URL 的子域名部分。
例如,http://huddledigital.zendesk.com 使用 huddledigital
ZENDESK_USERNAME
用于认证的账户的用户名。
ZENDESK_TOKEN
API 访问令牌。您可以在 https://SUBDOMAIN.zendesk.com/agent/admin/api/settings
创建一个。
ZENDESK_DRIVER
(可选)
将其设置为 null
或 log
以防止直接从您的环境中调用 Zendesk API。
用法
门面
Zendesk
门面作为 Zendesk\API\Client
类实例的包装器。此类上可用的任何方法(在此处有文档)都可通过门面访问。例如
// Get all tickets Zendesk::tickets()->findAll(); // Create a new ticket Zendesk::tickets()->create([ 'subject' => 'Subject', 'comment' => [ 'body' => 'Ticket content.' ], 'priority' => 'normal' ]); // Update multiple tickets Zendesk::ticket([123, 456])->update([ 'status' => 'urgent' ]); // Delete a ticket Zendesk::ticket(123)->delete();
依赖注入
如果您不想使用门面,您可以直接在 config/app.php
中添加别名,而不是注入 Huddle\Zendesk\Services\ZendeskService
到您的类中。然后,您可以像在门面中使用相同的方法一样使用此对象。
<?php use Huddle\Zendesk\Services\ZendeskService; class MyClass { public function __construct(ZendeskService $zendesk_service) { $this->zendesk_service = $zendesk_service; } public function addTicket() { $this->zendesk_service->tickets()->create([ 'subject' => 'Subject', 'comment' => [ 'body' => 'Ticket content.' ], 'priority' => 'normal' ]); } }
此包在 MIT 许可证 下可用。