This package provides a simple and efficient way to integrate WhatsApp Cloud API functionality into your Laravel application.
You can install the package via composer:
composer require joemunapo/whatsapp-php
After installation, publish the configuration file:
php artisan vendor:publish --provider="Joemunapo\Whatsapp\WhatsappServiceProvider"
Update the published config file in config/whatsapp.php
:
return [
'account_model' => \App\Models\Business::class,
'fields' => [
'number_id' => 'number_id',
'token' => 'whatsapp_token',
'catalog_id' => 'catalog_id',
],
];
Ensure your database model (e.g., Business
) has the necessary fields to store WhatsApp account details.
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);
$payload = // ... webhook payload from WhatsApp
$message = Whatsapp::handleWebhook($payload);
if ($message) {
// Process the message
$message->reply('Thank you for your message!');
}
When you receive a message with media (like an image, video, or document), you can retrieve the media content using the getMedia
method:
$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
- Send text messages
- Send interactive messages (buttons, lists, product lists)
- Send media (images, videos, documents)
- Send template messages
- Handle incoming messages via webhooks
- Mark messages as read
- Retrieve media content
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.