gabrielmoura / laravel-utalk
Umbler Utalk 门面
dev-main
2023-12-04 16:25 UTC
Requires
- php: ^8.1
- illuminate/http: *
Requires (Dev)
- laravel/pint: ^1.13
- orchestra/testbench: ^8.0
- phpstan/phpstan: ^1.10
This package is auto-updated.
Last update: 2024-09-04 22:17:42 UTC
README
目标
在此版本中,目的是建立与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开发的软件包,而是一个用于与消息服务集成的第三方软件包。
我们感谢您的理解和对本项目持续改进的贡献。