gabrielmoura/laravel-utalk

Umbler Utalk 门面

dev-main 2023-12-04 16:25 UTC

This package is auto-updated.

Last update: 2024-09-04 22:17:42 UTC


README

Laravel Utalk

Latest Stable Version License

目标

在此版本中,目的是建立与Utalk消息服务的集成,用于发送和接收消息。然而,当前实现的函数仅反映了API的初级使用,并且没有自动化流程。

用法

门面

use Gabrielmoura\LaravelUtalk\Utalk;
Utalk::member()->getMe();

容器

app('Utalk')->member()->getMe();

辅助函数

utalk()->member()->getMe();

WebHook

IPs

您可以获取用于消息传递的IP列表。

utalk()->webhook()->getIps();

可选配置

并在 config/services.php 中定义它们

'allow_ips' =>
            [
                '40.88.132.66/32',
                '52.188.209.245/32',
                '52.188.209.200/32',
                '40.88.5.13/32',
                '13.82.149.8/32',
                '20.121.215.166/32',
                '52.191.24.158/32',
            ]

默认情况下,该软件包检查IP是否在允许的IP列表中

  • 127.0.0.1/8
  • 192.168.0.1/16
  • 10.0.0.1/24
  • 172.16.0.0/12
  • 40.88.132.66/32
  • 52.188.209.245/32
  • 52.188.209.200/32
  • 40.88.5.13/32
  • 13.82.149.8/32
  • 20.121.215.166/32
  • 52.191.24.158/32

WebHook 路由

某些Webhook如果在20x范围内未收到HTTP响应代码,则会重发消息。因此,在处理接收到的消息之前,负责接收Webhook的路由必须先发出成功代码。

此软件包提供了一个接收Webhook的路由和检查原始IP的中介。要使用它,只需将路由添加到对应于 /webhook/utalk 的路由文件中。

// routes/web.php
    Route::utalk()

鼓励创建一个用于接收Webhook消息事件的监听器。

<?php

namespace App\Listeners;

use Gabrielmoura\LaravelUtalk\Events\UtalkWebhookEvent;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Support\Facades\Log;

class UtalkMessageRcvListener implements ShouldQueue
{
    use InteractsWithQueue;

    /**
     * Create the event listener.
     */
    public function __construct()
    {
        //
    }

    /**
     * Handle the event.
     */
    public function handle(UtalkWebhookEvent $event): void
    {
        if ($event->type == 'Message') {
            Log::debug("Mensagem Recebida", (array)$event);
        } else {
            Log::debug("Outro tipo de evento", (array)$event);
        }

    }
}

发送消息

    $utalk = new UtalkService();
    $utalk->message()->set(
        fromPhone: '+55***********',
        toPhone: '+55***********',
        organizationId: '********',
        message: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.'
    );

配置

/** config/services.php **/

'utalk' => [
        'key' => env('UTALK_KEY'),
        'organizationId'=>env('UTALK_ORGANIZATION_ID'),
        'channelId'=> env('UTALK_CHANNEL_ID'),
    ],

免责声明和合作通知

我们想提醒您,该软件可能存在缺陷、错误或漏洞,这些缺陷可能会在特定情况下影响其性能。我们致力于不断改进此产品,并依靠用户社区的协作来识别和纠正任何潜在问题。

如果您发现任何错误、错误或对改进或新功能有建议,我们鼓励您通过官方存储库上的Pull Requests与我们分享您的发现。我们相信,相互合作对于软件的演变以及为所有用户创建更强大、更可靠的环境至关重要。

这不是Umbler开发的软件包,而是一个用于与消息服务集成的第三方软件包。

我们感谢您的理解和对本项目持续改进的贡献。