mralston/quake-sdk

Quake API 的 PHP SDK。

v1.0.3 2022-06-12 18:39 UTC

This package is auto-updated.

Last update: 2024-09-13 00:03:10 UTC


README

这是 Quake 的 PHP SDK。Quake 平台提供了 WhatsApp 和 SMS 消息流能力,这对于招聘、潜在客户资质审核和其他自动双向通信非常有用。

访问 Quake 网站 获取更多信息。

安装

您可以通过 composer 安装此包

composer require mralston/quake-sdk

基本用法

use Mralston\Quake\Client;
use Mralston\Quake\Contact;
use Mralston\Quake\Flow;

// Log in
$client = new Client(
    $username,
    $password,
    $companyId,
    $apiEndpoint
);

// Create contact
$contact = $client->createContact(
    $firstName,
    $lastName,
    $mobileNumber
)

// Delete contact
$client->deleteContact($contact);

// Create flow instance
$flowInstance = $client->createFlowInstance(
    $flow,
    $contact,
    $parameters
);

// Fetch flow instance by ID
$flowInstance = $client->showFlowInstance($id);

// Invite a flow instance (trigger the flow)
$client->inviteFlowInstance($flowInstance);

// Fetch all flow instances
foreach ($client->listFlowInstances() as $flowInstance) {
    dump($flowInstance);
}

// Fetch all flows
foreach ($client->listFlows() as $flow) {
    dump($flow);
}

// Fetch all entities
foreach ($client->listEntities() as $entity) {
    dump($entity);
}

流畅 API

API 暴露的许多对象都支持方法链。

$client->createContact(
    $firstName,
    $lastName,
    $mobileNumber
)->createFlowInstance(
    Flow::make(['id' => $flowId])
)->invite();

Webhooks

Quake 平台可以通过 webhooks 向您的应用程序发送推送通知。为了使用 webhooks,您的应用程序必须能够响应发送给它的挑战请求。这些挑战包括一个 crc_token,它必须与一个签名密钥结合使用才能发送有效的响应。签名密钥可以在 Quake 网站上设置。

Quake 客户端的 resolveWebhookChallenge() 方法将负责为您生成此响应。您需要做的就是提供接收到的 crc_token 并发送回响应。以下是一个基本示例

$client = new Client(
    $username,
    $password,
    $companyId,
    $apiEndpoint,
    $webhookSecret
);

$crcToken = $_GET['crc_token'];
$response = $client->resolveWebhookChallenge($crcToken);

echo $response;

Laravel

配置

在 Laravel 中,您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Mralston\Quake\QuakeServiceProvider" --tag="config"

这是发布配置文件的内容

return [
    'username' => env('QUAKE_USERNAME'),
    'password' => env('QUAKE_PASSWORD'),
    'company_id' => env('QUAKE_COMPANY_ID'),
    'api_endpoint' => env('QUAKE_API_ENDPOINT'),
    'webhook_secret' => env('QUAKE_WEBHOOK_SECRET')
];

使用您的用户名、密码和公司 ID 配置三个环境变量。这些是 Quake 提供的 UUID。API 端点是 Quake 平台的基本 URL,例如 https://www.quake.co.uk

QUAKE_USERNAME=
QUAKE_PASSWORD=
QUAKE_COMPANY_ID=
QUAKE_API_ENDPOINT=
QUAKE_WEBHOOK_SECRET=

依赖注入

除了上面流畅 API 部分中描述的方法链之外,Laravel 集成还负责自动处理身份验证。您只需要从容器中获取客户端的实例并开始使用它。

您可以使用依赖注入来获取预认证的客户端实例

use Illuminate\Http\Request;
use Mralston\Quake\Client;

class MyController
{
    public function create(Request $request, Client $client)
    {
        // Create new contact using POST data
        $contact = $client->createContact(
            $request->input('first_name'),
            $request->input('last_name'),
            $request->input('mobile'),
        )
    }
}

或者,您可以从容器中解析客户端实例

use Mralston\Quake\Client;

$client = app(Client::class);

外观

按照真正的 Laravel 传统,您也可以使用外观(当然,当然还有方法链!)。

use Mralston\Quake\Facades\Quake;
use Mralston\Quake\Flow;

Quake::createContact(
    $firstName,
    $lastName,
    $mobileNumber
)->createFlowInstance(
    Flow::make(['id' => $flowId])
)->invite();

变更日志

请参阅 变更日志 了解最近的变化。

贡献

请参阅 贡献指南 获取详细信息。

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件