joemunapo / whatsapp-php
此包为Laravel应用程序提供WhatsApp Cloud API的无缝集成。它提供了灵活的解决方案。非常适合多租户应用或管理多个WhatsApp账户的企业。
dev-main
2024-09-06 06:07 UTC
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
This package is auto-updated.
Last update: 2024-09-06 06:07:45 UTC
README
此包提供了一种简单高效的方法,将WhatsApp Cloud API功能集成到您的Laravel应用程序中。
安装
您可以通过composer安装此包
composer require joemunapo/whatsapp-php
配置
安装后,发布配置文件
php artisan vendor:publish --provider="Joemunapo\Whatsapp\WhatsappServiceProvider"
更新已发布的配置文件config/whatsapp.php
return [ 'account_model' => \App\Models\Business::class, 'fields' => [ 'number_id' => 'number_id', 'token' => 'whatsapp_token', 'catalog_id' => 'catalog_id', ], ];
确保您的数据库模型(例如Business
)有存储WhatsApp账户详情所需的所有字段。
使用方法
初始化WhatsApp实例
use Joemunapo\Whatsapp\Whatsapp; $whatsapp = Whatsapp::useNumberId('your_whatsapp_number_id');
发送文本消息
$to = '1234567890'; $content = (object) [ 'type' => 'text', 'text' => [ 'body' => 'Hello, World!' ] ]; $messageId = $whatsapp->sendMessage($to, $content);
发送交互式消息(按钮)
$content = (object) [ 'type' => 'interactive', 'text' => 'Please choose an option:', 'buttons' => ['Option 1', 'Option 2', 'Option 3'] ]; $whatsapp->sendMessage($to, $content);
发送媒体
$mediaType = 'image'; $mediaUrl = 'https://example.com/image.jpg'; $caption = 'Check out this image!'; $whatsapp->sendMedia($to, $mediaType, $mediaUrl, $caption);
发送模板消息
$templateName = 'hello_world'; $languageCode = 'en_US'; $components = [ [ 'type' => 'body', 'parameters' => [ ['type' => 'text', 'text' => 'John Doe'] ] ] ]; $whatsapp->sendTemplate($to, $templateName, $languageCode, $components);
处理Webhooks
$payload = // ... webhook payload from WhatsApp $message = Whatsapp::handleWebhook($payload); if ($message) { // Process the message $message->reply('Thank you for your message!'); }
获取媒体
当您收到带有媒体的消息(如图片、视频或文档)时,您可以使用getMedia
方法检索媒体内容
$mediaId = 'media_id_from_webhook_payload'; $mediaInfo = $whatsapp->getMedia($mediaId); // The $mediaInfo will contain details about the media, including the URL to download it $mediaUrl = $mediaInfo['url']; // You can then download and process the media as needed
功能
- 发送文本消息
- 发送交互式消息(按钮、列表、产品列表)
- 发送媒体(图片、视频、文档)
- 发送模板消息
- 通过Webhooks处理传入的消息
- 标记消息为已读
- 检索媒体内容
测试
composer test
更新日志
请参阅更新日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请参阅我们的安全策略了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。