joemunapo/whatsapp-php

此包为Laravel应用程序提供WhatsApp Cloud API的无缝集成。它提供了灵活的解决方案。非常适合多租户应用或管理多个WhatsApp账户的企业。

dev-main 2024-09-06 06:07 UTC

This package is auto-updated.

Last update: 2024-09-06 06:07:45 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

此包提供了一种简单高效的方法,将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)。请参阅许可证文件以获取更多信息。