mralston / quake-sdk
Quake API 的 PHP SDK。
Requires
- php: ^7.4|^8.0
- ext-json: *
- giggsey/libphonenumber-for-php: ^8.12
- guzzlehttp/guzzle: >=6.0
- nesbot/carbon: ^2.0
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)。有关更多信息,请参阅 许可文件。